はじめに
こんにちは、Python界の情弱です。San Francisco出張に来て2週間弱が経ちますが、明日の夕方の便で日本に帰ります。アメリカの大味な食事も2週間すれば目新しさもなくなって、そろそろ東南アジア系の料理が食べたくなったりしてたので、帰ったら日本の繊細な味付けの食事を堪能したいと思います。
そんなことはどうでもよくて、SSHでの操作に続いてSFTPでファイルを置いたり取ってきたりってのも簡単にできたので、忘れないうちにメモ。
SFTPで操作する一例
基本的にSFTPのコマンドがそのまま関数になってるので楽。こんな感じで使うっていうサンプルを備忘録として載せておく。
本家のサンプルもめちゃくちゃわかりやすい。
import ssh username = 'spam' hostname = 'egg.example.com' password = 'password' port = 22 private_key_file = '/home/hoge/.ssh/dsa_private_key' # 例えばDSA鍵だったとして key = ssh.DSSKey.from_private_key_file(private_key_file) # SFTPサーバに接続 t = ssh.Transport((hostname, port)) t.connect(username=username, pkey=key) sftp = ssh.SFTPClient.from_transport(t) # デフォルトルートから1階層下のディレクトリ内で次の操作 # 1. 拡張子がtxtならlogに変更 # 2. それ以外はダウンロード dirlist = sftp.listdir('.') for d in dirlist: files = sftp.listdir(d) for f in files: if f[-4:] == ".txt": sftp.rename(f, f[:-4]+".log") else: sftp.get(f)
っつーかParamikoもそうだけど、pycryptも含めて標準ライブラリに入れて欲しいわー。