Python 通过FTP从大型机下载
我正在尝试使用ftplib从大型机解析/下载一些文件,但几次尝试后都失败了 到目前为止,我的代码是:Python 通过FTP从大型机下载,python,ftp,mainframe,Python,Ftp,Mainframe,我正在尝试使用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) 它失败了,出现以
import ftplib
ftp = ftplib.FTP('host','username','password')
ftp.retrlines("File To be Downloaded")
这很好,我可以看到所需的文件
但是,当我使用以下代码时
ftp.retrbinary("RETR 'File_Name'",open('ww.txt','wb').write)
它失败了,出现以下错误
错误\答复:200表示类型为图像
基于Dag的响应,我尝试使用以下代码通过Retrline下载文件
ftp.retrlines("RETR 'File_Name'",open('ww.txt','wb').write)
但它给了我以下的错误
错误\u回复:200表示类型为Ascii非打印请尝试在Python脚本中显式设置类型: 我猜,除非指定类型,否则默认值可能是ASCII。大多数二进制FTP传输最受欢迎的是二进制文件。我不确定什么最适合您的系统:图像,也许
另外:查看此链接:。预期结果是什么?Retrlines将文件读取为文本,这对于文本文件是正确的。Retrbinary将该文件作为二进制文件检索。如果您使用EBCDIC而不是ASCII来定位大型机,这是一个坏主意,并且可能是您获得此结果代码的原因,根据FTP规范,此结果代码不是错误。Hi Dag,是的,文件格式是EBCDIC而不是ASCII。所需的fromat是CSV或EXCEL。解析时是否需要使用编码。不确定写入.CSV文件时如何执行。应使用Retrline、Excel xls作为二进制文件和Excel xlsx作为文本检索.CSV文件。在第二个示例中,当第一个使用retrlines的示例起作用时,为什么要尝试将文件作为二进制文件下载?谢谢Dag。试过了,我用的代码是ftp.retrlinesRETR文件名,打开“ww.txt”,“wb”。写下,但它给了我以下错误。错误_回复:200表示类型为Ascii非打印这可能是ftplib中的错误。您能否在ftplib set_debuglevel 1或2中启用调试,并将输出附加到您的问题中?请记住在发布之前从日志中删除所有登录详细信息。谢谢Dag。这里有些东西起作用了。我假设我给出的输出文件名拼错了。再次感谢。嗨,保罗,不知道如何设置类型或编解码器。你能解释一下文学作品吗。