2015-10-07 80 views
0

我试图在不同年份下载不同季度的所有master.idx文件。 EDGAR FTP的结构如下: “edgar/full-index/2011/QTR3 /”,在QTR3文件夹中是master.idx文件。FTP 550错误:EGDAR FTP服务器中没有这样的文件或目录

我试图通过循环访问不同年份的文件夹,但它返回了550错误。所以我试图像这样测试循环。

from ftplib import FTP 
ftp = FTP('ftp.sec.gov') 
ftp.set_debuglevel(2) 
ftp.login('anonymous','[email protected]') 

QtrList = ('QTR1','QTR2','QTR3','QTR4') 
year = 2013  
ftp.cwd('edgar/full-index/'+str(year)) 
print(ftp.nlst()) 
year = 2014  
ftp.cwd('edgar/full-index/'+str(year)) 
print(ftp.nlst()) 
ftp.quit() 

年份= 2013年的部分作品,但是当我重置年份= 2014年时,它给了我这样的错误。

550 edgar/full-index/2014: No such file or directory 

但是,如果我再补充的登录信息2013年和2014年间,像这样

year = 2013  
ftp.cwd('edgar/full-index/'+str(year)) 
print (ftp.nlst("QTR1"),year) 

ftp = FTP('ftp.sec.gov') 
ftp.set_debuglevel(2) 
ftp.login('anonymous','[email protected]') 

year = 2014  
ftp.cwd('edgar/full-index/'+str(year)) 
print (ftp.nlst("QTR1"),year) 

没有错误。任何人都知道为什么,并且可以提供一个快速解决方案来访问每年Quarter文件夹中每个Quarter文件夹中的master.idx?

回答

0

石,,

您的错误是由于FTP服务器上的相对与绝对路径。在你的小路前投“/”,你应该很好走。我相信它试图从子目录内执行cd {你的新FTP目录}。有点像能够从任何地点cd/home,但不能从任何地点cd home。

from ftplib import FTP 
ftp = FTP('ftp.sec.gov') 
ftp.set_debuglevel(2) 
ftp.login('anonymous','[email protected]') 

QtrList = ('QTR1','QTR2','QTR3','QTR4') 
year = 2013  
ftp.cwd('/edgar/full-index/'+str(year)) 
print(ftp.nlst()) 
year = 2014  
ftp.cwd('/edgar/full-index/'+str(year)) 
print(ftp.nlst()) 
ftp.quit() 
相关问题