関連しているように見える投稿されたかなりの数の質問を調べましたが、私が抱えている問題と完全に同じではありません。
Pythonのftplibモジュールをzipfileとともに使用して、ftpからzipファイルをバイナリ形式でダウンロードしています。ただし、何らかの理由で、ダウンロードした zip ファイルが ASCII 形式になっているように見えます。
ダウンロードするファイルのパスに先頭/
が存在しないことを確認しました (zip 仕様と一致させるため)。
outFile = zipfile.ZipFile(local_file_path, 'w')
myftp.retrbinary('RETR %s' %i, outFile.write(i)) #i - target file path on ftp server
このコードは失敗し、次のエラーが表示されます。
st = os.stat(filename)
OSError: [Errno 2] No such file or directory: //$i
バイナリに 'b' オプションを追加しようとしましたが、zipfile が気に入らないようです:
outFile = zipfile.ZipFile(local_file_path, 'wb')
これによりエラーが発生します。
RuntimeError: ZipFile() requires mode "r", "w", or "a"
私はpython v2.6を使用しています。
何が間違っていて、どうすれば修正できますか?