我正在尝试将ftp站点的文本文件写入我的计算机上的文件,如下所示:
ftp = FTP(ftpName)
ftp.login()
ftp.cwd(filePath)
foo=open(myFile,"w")
ftp.retrlines("RETR stlint",foo.write)
ftp.close()
文件写入成功,但是当我打开文件时,没有换行符。有什么建议?
答案 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)