0

我正在尝试将 FTP 从 UNIX 服务器下载到 Windows 框中。我有这个很远(下面的代码),但是得到一个错误,指定一个file对象是必需的,但str 通过了

代码

#!/usr/bin/python
import ftplib
filename = "filename"
ftp = ftplib.FTP("xx.xxx.xxx.xxx")
ftp.login("uid", "psw")
ftp.cwd("/my/location")
print filename
ftp.retrbinary('RETR %s' % filename, file.write)

错误

Traceback (most recent call last):
  File "FTP.py", line 10, in <module>
    ftp.retrbinary('RETR %s' % filename, file.write)
  File "/usr/lib/python2.6/ftplib.py", line 399, in retrbinary
    callback(data)
TypeError: descriptor 'write' requires a 'file' object but received a 'str'

任何人都可以建议如何排序。如果可能的话,我在哪里可以获得一些示例来学习 Python FTP。

4

3 回答 3

1

您需要打开一个本地文件来写入。

改变

ftp.retrbinary('RETR %s' % filename, file.write)

ftp.retrbinary('RETR %s' % filename, open(filename, 'wb').write)
于 2013-07-02T04:42:19.530 回答
0

使用 .打开您要写入的文件with open。假设您正在读取文件server_filename并写入文件local_filename

with open(local_filename, 'wb') as opened_file:
    ftp.retrbinary('RETR %s' % server_filename, opened_file.write)
于 2015-01-28T15:03:08.793 回答
0
ftp.retrbinary('RETR %s' % filename, open('myoutputfile.txt', 'wb').write)
于 2013-07-02T04:43:46.607 回答