ファイルを別ホストへ送る処理が必要なとき、ファイルサイズが小さければhttpでPOSTしたりしちゃいます。が、ログファイルとかの大きなサイズのものを転送するにはhttpだとタイムアウトになったりするケースもあり、やっぱりそういうときはFTPが便利です。
まぁ「SCPしろよ」というのもごもっともです。w
#!/usr/bin/python
# -*- coding: utf-8 -*-from ftplib import FTP
def main():
print “start.”
_ftp = FTP(‘ftpサーバ名’)
_ftp.login(”)print _ftp.retrlines(‘LIST’)
_file = open(‘target_file.zip’, ‘rb’)
_ftp.cwd(‘/target_dir/’)
_ftp.storbinary(‘STOR target_file.zip’, _file)
_file.close()_ftp.quit()
if __name__ == ‘__main__’:
main()
10行目でログインしてますが、この例だとanonymousでのログインです。ユーザアカウントとパスワードが必要な場合、
_ftp.login(‘ユーザアカウント’, ‘パスワード’)
になります。
12行目は「ファイル一覧はこうやって取り出せますよ」のサンプルなだけです。ファイル転送処理には関係ないです。
で、14行目から。バイナリファイルを転送するのでバイナリモードで読み込みます。テキストファイルの転送ならオプションは「r」でOKです。テキストファイルの場合、「storbinary」ではなく「storlines」になります。
15行目でディレクトリを変更してますが、ルートディレクトリにファイルを転送したいならここは不要です。
追加モジュールなしでこんなに簡単にできてしまうのですから、やはりPythonは便利だと思います。