0

UNIX サーバーから Windows ボックスへの FTP ダウンロードを実装しようとしています。この far(code below) を取得しましたが、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 に答える