我正在尝试通过ftplib使用python解释器下载文本文件。文本文件是18412行,但是当我使用python下载时,我只得到18312行(下面的代码)。如果我从shell手动执行,我会得到整个文件。任何人都可以看看代码,看看我做错了什么。
服务器上的文件:
wc -l logs
18412 logs
下载脚本:
>>> import ftplib
>>> ftp = ftplib.FTP('A.B.C.D')
>>> ftp.login('USER', 'PASS')
'230-User logged in\n230 Your last login was on 2014-12-31 02-14-41.'
>>> f = open('temp', 'wb')
>>> ftp.retrbinary('RETR /rel/logs', f.write)
'226 Transfer complete'
>>> f.close()
已下载的文件:
wc -l temp
18312 temp
答案 0 :(得分:0)
尝试使用ftp.retrlines(...)
来编写文件,而不是retrbinary
,因为可能不会保留换行符,例如从\ r \ n,\ n到\ r \ n或其他任何设备,具体取决于平台。
ftp.retrlines()
被称为ASCII传输模式,它更适合传输日志文件。