所以我遵循了此页面上的文档: http://docs.python.org/library/ftplib.html#ftplib.FTP.retrbinary
也许我对“retrbinary”的作用感到困惑......我认为它检索一个二进制文件,从那里我可以打开它并写入该文件。
这是给我带来问题的行...
ftp.retrbinary('RETR temp.txt',open('temp.txt','wb').write)
我不明白的是我想写入temp.txt,所以我正在尝试
ftp.retrbinary('RETR temp.txt',open('temp.txt','wb').write('some new txt'))
但是我收到错误,我能够建立 FTP 连接,执行 pwd()、cwd()、rename() 等。
附:我正在尝试尽可能多地搜索此内容,谢谢!
最佳答案
看起来原始代码应该可以工作,如果您尝试从服务器下载文件。 retrbinary
命令接受您指定的函数对象(即函数名称后不带 ()
);每当有数据(二进制文件)到达时就会调用它。在这种情况下,它将调用您打开
文件的write
方法。这与 retrlines
略有不同,因为 retrlines
会假设数据是文本文件,并将适本地转换换行符(但会损坏图像)。
进一步阅读后,您似乎正在尝试写入服务器上的文件。在这种情况下,您需要传递一个文件对象(或具有行为类似于文件的 read
方法的其他对象)以供存储函数调用:
ftp.storbinary("STOR test.txt", open("file_on_my_computer.txt", "rb"))
关于python - 在python中通过FTP写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973551/