Python ftplib - 複数のファイルをアップロードしますか?
質問
グーグルで調べましたが、ファイルを1つアップロードする方法しか見つかりませんでした...そして、ローカルディレクトリからリモートのftpディレクトリにすべてのファイルをアップロードしようとしています。これを達成する方法はありますか?
解決
ループで?
編集:ユニバーサル場合にのみファイルをアップロードすると、次のようになります:
import os
for root, dirs, files in os.walk('path/to/local/dir'):
for fname in files:
full_fname = os.path.join(root, fname)
ftp.storbinary('STOR remote/dir' + fname, open(full_fname, 'rb'))
もちろん、あなたはちょうどこのようなファイル名を保存している場合、名前の衝突のために外を見る必要があります。
他のヒント
見る JSON-Callからアップロードファイルを作成するために必要なPythonスクリプトライン そして次へ FTPlib 操作:なぜ一部はアップロードされ、他のものはアップロードされないのでしょうか?
あなたの質問とは出発点が異なりますが、 答え 最初の URL には、ftplib によって json ファイルと xml ファイルをアップロードするためのサンプル構造が表示されます。スクリプト行 024 以降を見てください。
2 番目の URL には、追加のファイルのアップロードに関連する他の側面がいくつか表示されます。
json や xml 以外のファイル タイプにも適用できますが、明らかに、FTP_Upload 関数を定義して実現する 2 つの最後のセクションの前に異なる「エントリ」があります。
FTP バッチ ファイル (転送する必要があるファイルのリストを含む) を作成します。Python を使用して、「-s」オプションを指定して ftp.exe を実行し、ファイルのリストを渡します。
これは厄介ですが、どうやら FTPlib には STOR コマンドで複数のファイルを受け入れる機能がありません。
以下は FTP バッチ ファイルのサンプルです。
*
OPEN inetxxx
myuser mypasswd
binary
prompt off
cd ~/my_reg/cronjobs/k_load/incoming
mput *.csv
bye
上記の内容が「abc.ftp」というファイルにある場合、ftp コマンドは次のようになります。
ftp -s abc.ftp
それが役立つことを願っています。