Python

提供:kuhalaboWiki
移動: 案内, 検索

目次

CGI

https://techacademy.jp/magazine/21488

ローカルhttpサーバーをpythonで立ち上げる。

python3 -m http.server --cgi 8000
python -m SimpleHTTPServer

画像処理

アルファブレンド

openCV


NumPy

ファイル操作

ディレクトリー内のファイルの読み込み

glob

ディレクトリー内のファイルのリストを取得

import glob

file_list = glob.glob('path/to/dir/*.jpg')

for filename in file_list:
  with open(filename, 'r') as input:
  ...

ソートして読み込む。

import glob

file_list = sorted(glob.glob('path/to/dir/*.txt'))

for filename in file_list:
  with open(filename, 'r') as input:
  ...

元のリストをランダムソート(シャッフル): random.shuffle()

import random

l = list(range(5))
print(l)
# [0, 1, 2, 3, 4]

random.shuffle(l)
print(l)
# [4, 3, 2, 1, 0]

ディレクトリー内のファイルのリストを取得し、ランダムにシャッフルする。

import glob
import random

if __name__ == '__main__':

  file_list = glob.glob('path/to/dir/*.jpg')
  random.shuffle(file_list)

  for filename in file_list:
    with open(filename, 'r') as input:
    ...

リストからランダムに要素を抽出する。

import random

l = [0, 1, 2, 3, 4]

print(random.choice(l))
# 0

print(random.choice(('xxx', 'yyy', 'zzz')))
# yyy

ランダムに複数の要素を選択(重複なし): random.sample() randomモジュールの関数sample()で、リストからランダムで複数の要素を取得できる。要素の重複はなし(非復元抽出)。

第一引数にリスト、第二引数に取得したい要素の個数を指定する。リストが返される。

import random

l = [0, 1, 2, 3, 4]

print(random.sample(l, 3))
# [1, 3, 2]

print(type(random.sample(l, 3)))
# <class 'list'>

ネットワーク

SCP転送

paramikoを使う
paramikoインストール
pip install paramiko
ssh接続
import paramiko
with paramiko.SSHClient() as ssh:
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname='XXX.XXX.XXX.XXX', port=22, username='username', password='password')
scp client作成
import scp
with scp.SCPclient(ssh.get_transport()) as scp:
    scp.put('filename', '/upload/to/remote/directory/')
    scp.get('/upload/to/remote/directory/')
上記の2つをまとめる。
import paramiko
import scp

with paramiko.SSHClient() as ssh:
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname='XXX.XXX.XXX.XX', port=22, username='username', password='password')
    with scp.SCPclient(ssh.get_transport()) as scp:
        scp.put('filename', '/upload/to/remote/directory/')
        scp.get('/upload/to/remote/directory/')
個人用ツール
名前空間

変種
操作
案内
ツールボックス