我正在尝试使用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
答案 0 :(得分:0)
尝试在Python脚本中明确设置“TYPE”:
我猜测除非你指定一个类型,否则默认值可能是“ASCII”。大多数二进制FTP传输的Pop Favorite是“BINARY”。我不确定什么最适合你的系统:“IMAGE”,也许?
另外:看看这个链接:Downloading text files with Python and ftplib.FTP from z/os。
答案 1 :(得分:0)
预期结果是什么? Retrlines将文件作为文本读取,这对于文本文件是正确的。 Retrbinary将文件检索为二进制文件。如果您使用EBCDIC而不是ASCII来定位大型机,这是一个坏主意,并且可能是您获得此结果代码的原因(根据FTP规范不是错误)。