Python チートシート
よく使用されるPythonコードの断片
目次
時折必要になるが、すぐに見つからないことがある。
そのため、ここにすべてを保存しておく。
これらは新しいものではなく、
単なるコピー&ペーストの集まりだが、
自分にとって役立つので、
あなたにとっても役立つかもしれないと思う。
一般的なAnacondaコマンド
Condaがインストールされているかを確認
conda -V
Condaが最新かを確認
conda update conda
仮想環境を作成
conda create -n newenvname python=3.12 anaconda
仮想環境をアクティブ化
source activate newenvname
仮想環境に追加のPythonパッケージをインストール
conda install -n newenvname [package]
仮想環境を非アクティブ化
source deactivate
仮想環境を削除
conda remove -n newenvname --all
プログラムの依存関係
依存関係のインストール - requirementsファイルを使用して
個別にパッケージをインストールする代わりに、pipはすべての依存関係をRequirements Fileに宣言できる。
例えば、requirements.txtというファイルを作成し、以下のように記述することができる:
requests==2.18.4
google-auth==1.1.0
そして、pipにこのファイル内のすべてのパッケージをインストールさせるには、-rフラグを使用する:
python3 -m pip install -r requirements.txt
依存関係の凍結
pipは、インストールされているすべてのパッケージとそのバージョンのリストをfreezeコマンドで出力できる:
python3 -m pip freeze
これは以下のような出力になる:
requests==2.18.4
google-auth==1.1.0
pip freezeコマンドは、環境にインストールされているすべてのパッケージの正確なバージョンを再現できるRequirements Fileを作成するのに役立つ。
長方形を描画
import cv2
cv2.rectangle(img, (x1, y1), (x2, y2), color=(255,0,0), thickness=2)
x1,y1 ------
| |
| |
| |
--------x2,y2
以下を追加してみよう:
cv2.imwrite("my.png",img)
cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==wait forever
PIL Imageオブジェクトを持っているが、この画像に長方形を描画したい。
OpenCV2を使用して長方形を描画し、その後PIL Imageオブジェクトに戻したい。
以下のように行う:
# imはPIL Imageオブジェクト
im_arr = np.asarray(im)
# RGB配列をOpenCVのBGR形式に変換
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1とpts2は長方形の左上と右下の座標
cv2.rectangle(im_arr_bgr, pts1, pts2,
color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# 再びImageオブジェクトに戻す
im = Image.fromarray(im_arr)
イージーな引数の解析
import json
#---------------------------------------------------------------------------
def do_some_awesomeness(src_file, tgt_file):
print('Converting some stuff from {} to {}'.format(src_file, tgt_file))
#---------------------------------------------------------------------------
def run():
import argparse
parser = argparse.ArgumentParser(description="Some mega useful and efficient python tool.")
parser.add_argument("-s", "--src", dest="src_file",
help="input json filename")
parser.add_argument("-t", "--tgt", dest="tgt_file",
help="output json filename")
args = parser.parse_args()
do_some_awesomeness(args.src_file, args.tgt_file)
if __name__ == '__main__':
run()
以下のように呼び出す:
python ave_roma.py --src 1.json --tgt 2.json
JSONの読み込みと保存
import json
def do_convert(src_file, tgt_file):
with open(src_file) as f:
src = json.load(f)
tgt = src # :)
with open(tgt_file, 'w', encoding='utf-8') as f:
json.dump(tgt, f, ensure_ascii=False, indent=4)
拡張子のないファイル名を取得する
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
これは以下を出力する:
/path/to/some/file