1

ftplib を使用してメインフレームからいくつかのファイルを解析/ダウンロードしようとしていますが、数回試行しても失敗します。

今までの私のコードは次のとおりです。

import ftplib
ftp = ftplib.FTP('host','username','password')
ftp.retrlines("File To be Downloaded")

これは正常に機能し、必要なファイルを確認できます。

ただし、次のコードを使用すると。

ftp.retrbinary("RETR 'File_Name'",open('ww.txt','wb').write)

次のエラーで失敗します。

error_reply: 200 表現タイプは画像です

Dagの回答に基づいて、次のコードを試して、「retrlines」を介してファイルをダウンロードしました。

ftp.retrlines("RETR 'File_Name'",open('ww.txt','wb').write)

しかし、それは私に次のエラーを与えます。

error_reply: 200 表現型は Ascii NonPrint です

4

2 に答える 2

0

Python スクリプトで明示的に「TYPE」を設定してみてください。

http://publib.boulder.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.halu001%2Ftype.htm

タイプを指定しない限り、デフォルトはおそらく「ASCII」だと思います。ほとんどのバイナリ FTP 転送でよく使われるのは "BINARY" です。お使いのシステムに最も適したものは何かわかりませんが、おそらく "IMAGE" でしょうか?

また、次のリンクも参照してください: Downloading text files with Python and ftplib.FTP from z/os .

于 2013-05-24T20:29:18.890 に答える
0

期待される結果は何ですか?Retrlines は、ファイルをテキストとして読み取ります。これは、テキスト ファイルに適しています。Retrbinary は、ファイルをバイナリ ファイルとして取得します。ASCII の代わりに EBCDIC を使用してメインフレームをターゲットにしている場合、これは悪い考えであり、この結果コードを取得する理由である可能性があります (FTP 仕様によれば、これはエラーではありません)。

于 2013-05-24T20:34:32.047 に答える