質問

グーグルで調べましたが、ファイルを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

それが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top