Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从ftp写入文件,不需要';不做新线_Python_Ftp - Fatal编程技术网

Python:从ftp写入文件,不需要';不做新线

Python:从ftp写入文件,不需要';不做新线,python,ftp,Python,Ftp,我正在尝试将ftp站点的文本文件写入计算机上的文件,如下所示: ftp = FTP(ftpName) ftp.login() ftp.cwd(filePath) foo=open(myFile,"w") ftp.retrlines("RETR stlint",foo.write) ftp.close() 文件正在成功写入,但当我打开文件时,没有换行符。有什么建议吗 如果您查看一下,您将看到使用可选回调调用retrlines,将在调用回调之前先删除每行末尾的换行符 您可以创建自己的回调函数,该函

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

ftp = FTP(ftpName)
ftp.login()
ftp.cwd(filePath)
foo=open(myFile,"w")
ftp.retrlines("RETR stlint",foo.write)
ftp.close()
文件正在成功写入,但当我打开文件时,没有换行符。有什么建议吗

如果您查看一下,您将看到使用可选回调调用
retrlines
,将在调用回调之前先删除每行末尾的换行符

您可以创建自己的回调函数,该函数会附加一个换行符:

def append_newline(input):
    foo.write(input + "\n")
然后将其用于:

ftp.retrlines("RETR stlint", append_newline)
根据ftplib-

FTP.retrlines(命令[,回调])

。。。回调函数是为每一行调用的,每一行都有一个字符串参数,该参数包含带有尾部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()