田舎社会人のいろいろ学習記

Python、英語、その他いろいろ

【ftplib】FTP通信を行う方法【Python】

f:id:vigilantPotato:20210710043553p:plain
Pythonの組込みモジュールであるftplibを用いてFTP通信を行う方法を整理する。


【スポンサーリンク】


FTP通信設立

ftplibからFTPをインポートし、FTPオブジェクトを生成することで通信を設立する。オブジェクト生成時にホスト名、ユーザー名、パスワード、タイムアウト時間を設定できる。その後、loginメソッドでログインする。

from ftplib import FTP

ftp = FTP(                  #FTP通信用オブジェクト生成
        host="198.123.456", #ホスト名(IPアドレス)の設定
        user='USER_NAME',   #ユーザー名の設定
        passwd='PASS',      #パスワードの設定
        timeout=5,          #timeout
        )

ftp.login()                 #ログイン

[↑ 目次へ]


フォルダ・ファイルの操作

基本的なフォルダ・ファイルの操作方法を以下に示す。

動作 コマンド
カレントディレクトを変更 ftp.cwd(path)
ファイル・フォルダ名一覧を取得 ftp.nlst(path)
ファイルを削除 ftp.delete(path)
ディレクトリ作成 ftp.mkd(path)
ディレクトリを削除 ftp.rmd(path)

[↑ 目次へ]


【スポンサーリンク】


ファイルをダウンロード

テキストファイルの場合はretrlinesメソッドを、バイナリファイルの場合はretrbinaryメソッドを使用してファイルをダウンロードすることができる。

テキストファイルの場合

FTP内のfilename.txtをダウンロードし、download.txtとして保存する例を示す。

#テキストデータのダウンロード
with open("download.txt", "w") as f:
    ftp.retrlines("filename.txt", f.write)

バイナリファイルの場合

FTP内のバイナリデータをダウンロードし、save_filenameとして保存する例を示す。

#バイナリデータのダウンロード
with open(save_filename, "wb") as f:
    ftp.retrbinary("RETR %s" % filename, f.write)

[↑ 目次へ]


【スポンサーリンク】