私は何年もの間、非常に単純なバッチ ファイルを使用して、UNIX ftp サーバーから何百万ものファイルをダウンロードしてきました。
login
passwd
ascii
prompt n
cd to the right directory
get some_file
get another_file
cd to the next directory
repeat the pattern
これの良いところは、シンプルで、すべてのファイルが Window の改行で到着したため、ファイルを既存のプログラムですぐに使用できることでした。ルーターにいくつかの変更を加えたため、ファイルをプルするために Python スクリプトを作成する必要がありました。スクリプトの最初のバージョンは非常に単純ですが、機能します。
for key in key_filings:
for filing in key_filings[key]:
remote_directory = '/foo/bar/' + key + '/' + filing['key_number']
ftp.cwd(remote_directory)
text_file = filing['txt']
ftp.retrlines('RETR '+ text_file, open(save_dir + text_file,'w').writelines)
hdr_file = filing['hdr']
ftp.retrlines('RETR ' + hdr_file, open(save_dir + hdr_file,'w').writelines)
ただし、ファイルには明らかな改行はありません。ファイルは UNIX システムに保存されます。Windows CMD シェルを使用してファイルをダウンロードする前は、改行がそこにありました。ASCII コマンドを送信しようとしましたが、予想どおり、何の効果もありませんでした。
私のコード処理の一部は行ベースであるため、元々存在していた改行にアクセスできることが重要です。