[Python] FTPへファイルをアップロードする
はじめに
前回、Pythonで、FTPサーバー上の指定ディレクトリ内にある最新ファイルのみをダウンロードする処理を実装しました。
今回は、Pythonで、FTPサーバー上にファイルをアップロードする処理を実装します。
使用するライブラリ
・ftplib
FTPサーバーとのやり取りに使用できるライブラリ。FTPコマンドベースで使用することが可能になります。標準ライブラリのため、インストールは不要です。
動作環境
・windows10
・Jupyter Notebook 6.2.0
・Python 3.8.5
実装
全体のコードは下記です。
from ftplib import FTP
import os
ftp_host = 'ホスト名'
ftp_user = 'ユーザー名'
ftp_pwd = 'パスワード'
upload_f_path = r'アップロードするファイルのパス'
base_name = os.path.basename(upload_f_path)
with FTP(ftp_host,ftp_user,ftp_pwd) as ftp:
# ディレクトリ移動
ftp.cwd('/xxx/xxxxxxx/')
# ファイルをアップロード
with open(upload_f_path, 'rb') as fp:
ftp.storbinary(f'STOR {base_name}', fp)
実装の詳細内容です。
・FTP接続
・ディレクトリの移動
・FTP接続解除
については、下記記事を参照ください。
・ファイルのダウンロード
# ファイルをアップロード
with open(upload_f_path, 'rb') as fp:
ftp.storbinary(f'STOR {base_name}', fp)
storbinaryメソッドを使用します。第1引数には、'STOR ファイル名'を指定します。
ファイル名には、パスが指定できないので、cwdメソッドでディレクトリを移動しておく必要があります。
このメソッドを実行すると、指定したファイル名で、FTPのカレントディレクトリにアップロードされます。
まとめ
今回は、Pythonで、FTPへファイルをアップロードする処理を実装しました。この処理は、前回のFTPで最新のファイルをダウンロードし、処理したファイルをアップロードする、という一連の処理で使用しています。
この記事が気に入ったらサポートをしてみませんか?