python - 在python中通过FTP写入文件

标签 python ftp ftplib

所以我遵循了此页面上的文档: 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/

相关文章:

python - 为什么我的循环神经网络的损失为零?

python - 如何找出所需的窗口大小?

python - 使用 ftplib 下载目录树

Python:使用 UTF-8 读取 Ftp 文件列表?

java - 分析器消息解析

linux - 循环不解压我的文件...代码不进入循环

python - Django ORM获取各自的选择值而不是字段值

python - 为什么我的 python 代码运行了两次?

php - 使用零字节的 PHP cURL/FTP 传输的文件

mysql - 转储 MysqlDB 并将其传输到 FTP