0

異なる年の異なる四半期のすべての 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()

年 = 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','shijiehkj@gmail.com')

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

エラーはありません。誰でも理由を知っていて、各年フォルダーの各四半期フォルダーの master.idx にアクセスするための簡単な解決策を提供できますか?

4

1 に答える 1

0

シジエ、

あなたのエラーは、FTP サーバー上の相対パスと絶対パスが原因です。パスの前に「/」を投げると、準備完了です。サブディレクトリ内から cd {your new FTP directory} を実行しようとしていると思います。任意の場所から 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()
于 2015-12-21T02:18:36.123 に答える