Python FTP 下载不工作
我正在尝试用Python从FTP下载一个文件。我已经成功进入了目录,但无法下载文件。
我使用的命令是 ftp.retrbinary('master.idx', open(fname,'wb').write)
出现的错误如下。看起来这个命令在寻找 MASTER.IDX
,而不是 master.idx
。
我想下载的文件的完整路径是 ftp://ftp.sec.gov/edgar/full-index/2011/QTR2/master.idx
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
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 MASTER.IDX not understood
2 个回答
1
可以使用Python的
import wget
fileloc = '/path/to/the/file/foo.txt'
wget.download(fileloc)
2
我不知道为什么名字会变成大写。不过在使用FTP的时候,我是这样做的,这可能对你有帮助:
server = "URL.of.server"
directory = "directory/where/the/file/is"
filename = "nameoffile.txt"
from ftplib import FTP
ftp = FTP(server) #Set server address
ftp.login() # Connect to server
ftp.cwd(directory) # Move to the desired folder in server
ftp.retrbinary('RETR ' + filename,open(filename, 'wb').write) # Download file from server
ftp.close() # Close connection
我觉得可能是因为'RETR '这个指令,如果你不写的话,服务器可能就不知道你想要做什么。