Ошибка FTP 550: такого файла или каталога на FTP-сервере EGDAR нет

Я пытаюсь скачать все файлы 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)

Там нет ошибки. Кто-нибудь знает почему и может дать быстрое решение для доступа к master.idx в каждой папке Quarter в каждой папке года?

1 ответ

Shijie,

Ваша ошибка связана с относительным и абсолютным путями на FTP-сервере. Поставьте "/" перед вашими путями, и вам будет хорошо идти. Я считаю, что он пытается создать компакт-диск {ваш новый каталог FTP} из подкаталога. Вроде как возможность CD / Home из любого места, но не в состоянии CD дома из любого места.

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()
Другие вопросы по тегам