2015-10-07 78 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() 
相關問題