インストール
pip install tabula-py |
加えて,Javaが必要なのでJDKをインストールしておくこと.
スクリプト
import tabula |
pip install tabula-py |
加えて,Javaが必要なのでJDKをインストールしておくこと.
import tabula |
pip install gspread |
import gspread |
wb = gc.open_by_key('ID') |
wb = gc.create('ブック名') |
wb.title |
wb.add_worksheet(title='シート名', rows='行数', cols='列数') |
wb.worksheets() |
ws = wb.worksheet('シート名') |
ws = wb.get_worksheet(int型のインデックス番号) |
ws.title |
ws.get_all_values() |
第i
行(列)の取得は
ws.row_values(i) |
ws.cell(i, j).value |
ws.acell('A1').value |
ws.append_row(リスト) |
ws.append_rows(リストのリスト) |
dirname(__file__) |
import PyPDF2 |
Pythonのスクリプトの実行をGUIで行えるようにするには,tkinterを用いる.
import sys |
テキストはLabel
で作ることができる.
txt = tk.Label(text=u'説明文') |
自動配置はpack
で行われるが,place(x=10, y=20)
のように位置を指定することもできる.
ボタンで行う処理は別途関数を作っておき,ボタンにbind
する.
なお,ここでの<Button-1>
は左クリックのこと.
def sample_func(event): |
テキストボックスはEntry
で作ることができる.
txtbox = tk.Entry(width=50) |
insert
の第1引数は挿入位置で,
となる.
クリアは
txtbox.delete(0, tk.END) |
のようにする.
ブール値を格納する変数をBooleanVar
で用意し,set
で初期値を与える.
bl1 = tk.BooleanVar() |
チェックボックスを使った関数は別途作り,ボタン等に紐づける.
def checkbox_sample_func(event): |
frame = tk.Frame() |
選択されたものはvar.get()
で取得する.
たとえば,
def sample_func(event): |
として,ボタン等と紐づけて使う.
予めメッセージボックスをインポートしておく.
from tkinter import messagebox |
必要なところで次のようにする.
messagebox.showinfo('見出し', '表示する文章') |
cxfreezeを使う場合であれば,
cxfreeze -c hello.py --target-dir dist |
の形.
サーバの設定時刻や地域の影響を受けないように書く。
協定世界時(UTC:Universal time coordinated)から9時間調整する。
jst = datetime.datetime.utcnow() + datetime.timedelta(hours=9) |
macOS13.3でのStable Diffusionの使用例。
パラメータ等をほぼ初期状態にしておいても、本物らしく見える、校正屋さんから見ても異状確認に手間がかかりそうな画像が生成された。
次のクラスをテーブルのための例とする.
class Books(Base): |
SQLAlchemyではレコードの選択をquery
で行い,絞り込んだ上でall
等により抽出する.
ここで,filter
はSQLのWHERE
句に相当する.
セッション名.query(取り出したいもの).filter(絞り込み条件).抽出方法 |
all
は複数ヒットするものに使う.
次の例は,1000円以上の書籍の品番と名前を抽出する.
session.query(Books.id, Books.title).filter(Books.price >= 1000).all() |
first
は1行に決まるケースで使う.
次の例は,重複しない品番から書籍情報を抽出する.
session.query(Books).filter(Books.id == 'A123').first() |
scalar
は1つの値に決まるケースで使う.
次の例は,ある品番の書籍情報のうち,価格だけを抽出する.
session.query(Books.price).filter(Books.id == 'A123').scalar() |
distinct
で重複を取り除くことができる.
次は,1000円以上の書籍の価格のリスト.
session.query(distinct(Books.price)).filter(Books.price >= 1000).all() |
価格が高いものから5件を抽出するなら,order_by
とlimit
を使って次のようにする.
from sqlalchemy import desc |
and_
,or_
,not_
を使う.
次は1000円以上でフラグがFalseの書籍を抽出する例.
from sqlalchemy import and_, or_, not_ |
like
を使う.
次は「ネコ」で始まる書名の書籍を抽出する例.
session.query(Books).filter(Books.title.like("ネコ%").all() |
between
を使う.
次は価格が1000円から2000円の書籍を抽出する例.
session.query(Books).filter(Books.price.between(1000, 2000)).all() |
in_
を使う.
次は1000円か1200円の価格である書籍を抽出する.
session.query(Books).filter(Books.price.in_[1000, 1200]).all() |
SQLAlchemyの使用例.
pip
からのインストールは次のようにして行う.
pip install SQLAlchemy |
接続情報を与える.
次はPostgreSQLに5432ポートで接続する情報の記述例.
from sqlalchemy import create_engine |
エンジンからセッションを作成する.
with
でセッションを使っている間にエラーが生じなければコミット,生じたらロールバックするつもりで予め準備しておく.
from sqlalchemy.orm import sessionmaker |
データベース処理用のクラスを作って,それを継承する.
ここではBooks
というクラスを作り,データベースのbooks
というテーブルにアクセスするようにした.
テーブル内の列はColumn
で定義する.
from sqlalchemy.orm import declarative_base |
ここで主キー制約を与えるのにprimary_key
を使用した.
非Null制約にはnullable
,一意制約にはunique
を使う.
追加したいレコードのインスタンスを作る.
book = Books() |
データベースに接続してadd
する.
with Session() as session: |
レコードの選択をquery
で行い,絞り込んだ上でall
等により抽出する.
ここで,filter
はSQLのWHERE
句に相当する.
セッション.query(取り出したいもの).filter(絞り込み条件).all() |
次の例では,1000円以上の書籍の品番と名前を抽出する.
with Session() as session: |
data
に格納したレコードの更新は次のように行う.
次の例では,抽出したレコードについてflag
列をTrue
に更新する.
with Session() as session: |
delete
で削除が実行できる.
with Session() as session: |
pip install openai |
次はOpenAI社のQ&Aのサンプルを改変したもの.
import openai |
openpyxlで画像の入ったExcelを扱うには,Pillowがインストールされた環境であることが必要です.
from openpyxl.drawing.image import Image |
img = Image('ファイル') |
original_ratio = img.height / img.width |
BoxをPythonで操作するためのメモ.
続きを読む次のエラーが出た.
TypeError: Client.__init__() missing 1 required keyword-only argument: 'intents' |
intents
を指定しないといけない.
discord.Client() |
を
discord.Client(intents=discord.Intents.all()) |
に修正した.
SSL
やCertificateError
と見えるなにかの長いエラーが出た.
ターミナルでPythonの証明書を更新した.
/Applications/Python\ 3.10/Install\ Certificates.command |
DropboxをPythonで操作するためのメモ.
続きを読むPythonで添付付きファイルを送信するスクリプトです.
続きを読むカレントディレクトリ以下にある任意のPowerPointプレゼンテーションで,全スライドからテキストを抽出するPythonスクリプトです.
続きを読むPythonでDiscordのボットを作る方法です.
discordwebhook v.1.0.3の例です.
unittest
だと複数のパラメータを試しているときに最初のエラーで停止してしまいます.
全パターンの結果を得るためにsubTest
を使う方法です.
print
の出力を抑制するには次のようにします.
import sys |
解除するには次のようにします.
sys.stdout = sys.__stdout__ |
PythonでPostgreSQLを操作する方法についてのメモ.
続きを読む正規表現は文字列の集合を1つの文字列にまとめて表現する方法です.
各種プログラミング言語で検索・置換に用いられています.
os
モジュールをインポートすると,os.sep
でセパレータを取得できる.
dir, file = os.path.split('/path/to/file') |
root, ext = os.path.splitext('/path/to/file') |
os.path.abspath('パス')
os.path.relpath('パス', '起点')
os.path.exists('パス')
ls
コマンドに当たるのはos.listdir('パス')
mkdir
に当たるのはos.makedirs('パス')
os.path.isdir('パス')
やos.path.isfile('パス')
がある.os.remove('パス')
で行う.shutil
モジュールをインポートしてからshutil.rmtree('パス')
で.mv
に当たるのはshutil.move('パスfrom', 'パスto')
PythonでPowerPointのスライドを作成する方法のメモです.
続きを読むiPhoneのアプリケーション「Pythonista3」で,pip
コマンドを使ったインストールを可能にする方法です.
Pythonではsqlite3モジュールを使用することにより,SQLiteを扱うことができます.
下の例はpythonのサイトを加工したものです.
2つのシートを比較し,各セル内の数値・文字列に差分があればセル背景色を付けます.
罫線や列幅等の影響は受けません.
Beautiful SoupはPythonでスクレイピングを行うのに役立つオープンソースのライブラリで,HTMLやXMLからデータを取得することができます.
続きを読むPythonのクラスのサンプルです.
続きを読む日時を表示するためのメモ.
続きを読むPythonでファイルを読み書きするサンプルです.
続きを読むPythonの基本構文のサンプルです.
続きを読むOne cat just leads to another.
(Ernest Hemingway)
色鉛筆塗り