pythonでftp取得自動化
短期間のバックアップ目的で、毎日FTP受信しているファイル群がある。
サイズも小さいし、それほど手間ではないので手作業を実施していたが、
やはり面倒になってきたので、pythonスクリプトを作成する。
[cc lang=”python”]
#!/usr/bin/env python
import os
import logging
import ftplib
local_dat_dir = ‘data/’
server_dat_dir = ‘/data_dir’
print(‘start.’)
”’ ダウンロード済みのファイルリスト作成 ”’
for f in os.listdir(local_dat_dir):
exists_list.append(f)
”’ ダウンロードされていないファイルのダウンロード ”’
try:
”’ FTP接続し、サーバのデータディレクトリに移動 ”’
ftp = ftplib.FTP(‘ftp-server’)
ftp.login(‘ftp-user’, ‘ftp-password’)
ftp.cwd(dat_dir)
”’ サーバに存在するファイルでループ ”’
for path in ftp.nlst(server_dat_dir):
”’ パスを除去する
filename = path[len(server_dat_dir) + 1:]
”’ ダウンロードされていない場合は、ダウンロードする。 ”’
if not filename in exists_list:
print(‘ftp get start. [{}]’.format(filename))
# ダウンロード
with open(‘{}/{}’.format(local_dat_dir, f), ‘wb’) as w:
ftp.retrbinary(‘RETR {}’.format(f), w.write)
print(‘ftp get end.’)
finally:
”’ FTP切断 ”’
ftp.quit()
print(‘end.’)
[/cc]
こんな簡単なスクリプトでFTP受信できるのであれば、もっと早く作るべきだった。
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
コメントを残す