見出し画像

[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で最新のファイルをダウンロードし、処理したファイルをアップロードする、という一連の処理で使用しています。

この記事が気に入ったらサポートをしてみませんか?