Python ftplib,缺少文本文件的最后100行

时间:2014-12-30 21:05:24

标签: python ftplib

我正在尝试通过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

1 个答案:

答案 0 :(得分:0)

尝试使用ftp.retrlines(...)来编写文件,而不是retrbinary,因为可能不会保留换行符,例如从\ r \ n,\ n到\ r \ n或其他任何设备,具体取决于平台。

ftp.retrlines()被称为ASCII传输模式,它更适合传输日志文件。