Python:从ftp写入文件,不做换行

时间:2015-07-02 17:38:06

标签: python ftp

我正在尝试将ftp站点的文本文件写入我的计算机上的文件,如下所示:

ftp = FTP(ftpName)
ftp.login()
ftp.cwd(filePath)
foo=open(myFile,"w")
ftp.retrlines("RETR stlint",foo.write)
ftp.close()

文件写入成功,但是当我打开文件时,没有换行符。有什么建议?

2 个答案:

答案 0 :(得分:2)

根据ftplib documentation -

  

FTP.retrlines(command [,callback])

     

...为每一行调用回调函数,其中包含一个字符串参数,该参数包含剥离尾部CRLF的行。默认回调将该行打印到sys.stdout。

也许您可以创建自己的回调函数,在将行写入文件时附加换行符。

示例 -

ftp = FTP(ftpName)
ftp.login()
ftp.cwd(filePath)
foo=open(myFile,"w")
def customWriter(line):
    foo.write(line + "\n")
ftp.retrlines("RETR stlint",customWriter)
ftp.close()
foo.close()

答案 1 :(得分:0)

如果查看the documentation,您会看到使用可选回调调用retrlines会在调用回调之前先删除每行末尾的换行符。

您可以创建自己的追加换行符的回调:

def append_newline(input):
    foo.write(input + "\n")

然后将其用于:

ftp.retrlines("RETR stlint", append_newline)