我正在尝试下载所有的master。不同年份不同季度的Idx文件。EDGAR FTP的结构是这样的:"edgar/full-index/2011/QTR3/",在QTR3文件夹中是master。idx文件。
我试图通过循环访问不同年份的文件夹,但它返回我550错误。所以我试着像这样测试这个循环。
from ftplib import FTP
ftp = FTP('ftp.sec.gov')
ftp.set_debuglevel(2)
ftp.login('anonymous','shijiehkj@gmail.com')
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()
year = 2013部分工作,但当我重置year = 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','shijiehkj@gmail.com')
year = 2014
ftp.cwd('edgar/full-index/'+str(year))
print (ftp.nlst("QTR1"),year)
没有错误。有人知道为什么,可以给一个快速的解决方案,以访问大师。idx在每个季度文件夹在每个年度文件夹?
史杰,
您的错误是由于FTP服务器上的相对路径与绝对路径。在你的路径前面加一个"/",你就可以走了。我相信它正在尝试从子目录中执行cd{您的新FTP目录}。有点像可以从任何位置cd/home,但不能从任何位置cd home。
from ftplib import FTP
ftp = FTP('ftp.sec.gov')
ftp.set_debuglevel(2)
ftp.login('anonymous','shijiehkj@gmail.com')
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()