Ошибка 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()