我是 python 新手,尝试从 ftp 文件夹下载所有 csv 文件,但收到此错误。 这是我的代码:
ftp = ftplib.FTP('192.128.0.20', 'bingo', 'Password')
ftp.cwd('/')
filematch = '*.csv'
for filename in ftp.nlst(filematch):
fhandle = open(filename,'wb')
ftp.retrbinary('RETR' + filename, fhandle.write)
fhandle.close()
这是我的错误:
Traceback (most recent call last):
File "./dirmon.py", line 65, in <module>
ftp.retrbinary('RETR' + filename, fhandle.write)
File "/usr/lib/python2.7/ftplib.py", line 406, in retrbinary
conn = self.transfercmd(cmd, rest)
File "/usr/lib/python2.7/ftplib.py", line 368, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib/python2.7/ftplib.py", line 331, in ntransfercmd
resp = self.sendcmd(cmd)
File "/usr/lib/python2.7/ftplib.py", line 244, in sendcmd
return self.getresp()
File "/usr/lib/python2.7/ftplib.py", line 219, in getresp
raise error_perm, resp
ftplib.error_perm: 500 RETRRINGGODATA-2014-07-02.CSV not understood
最佳答案
ftp.retrbinary
处缺少空格:(我也更喜欢 with
声明):
ftp = ftplib.FTP('192.128.0.20', 'bingo', 'Password')
ftp.cwd('/')
filematch = '*.csv'
target_dir = '/home/toor/ringolist'
import os
for filename in ftp.nlst(filematch):
target_file_name = os.path.join(target_dir, os.path.basename(filename))
with open(target_file_name ,'wb') as fhandle:
ftp.retrbinary('RETR %s' % filename, fhandle.write)
关于python - ftplib.error_perm : 500 not understood downloading file from ftp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733125/