Я пытаюсь загрузить файлы с ftp-сервера, но у меня возникает ошибка, в которой отказано в разрешении.
Traceback (most recent call last):
File "/Users/x34/Documents/Python/ftp_download.py", line 27, in <module>
download()
File "/Users/x34/Documents/Python/ftp_download.py", line 21, in download
with open(filename,'wb') as f:
IOError: [Errno 13] Permission denied: '/p012r018_5dt19900722_z20_30.tif.gz'
Загрузка вручную или с помощью filezilla работает нормально, но мой сценарий ниже не работает.
from ftplib import ftp
ftp = FTP(r'ftp.glcf.umd.edu')
ftp.login()
directory = 'glcf/Landsat/WRS2/p012/r018/p012r018_5dx19900722.TM-GLS1990'
filename = '/p012r018_5dt19900722_z20_30.tif.gz'
ftp.cwd(directory)
with open(filename,'wb') as f:
ftp.retrbinary('RETR' + filename,f.write)
ftp.close()
Еще одно примечание ... и, возможно, я неправильно прочитал документы - http://docs.python.org/library/ftplib.html, но я не совсем понимаю, где ftplib решает загрузить файлы (каталог загрузки по умолчанию?). Есть ли другой модуль, лучше подходящий для этого приложения?
ОБНОВЛЕНИЕ
Я должен уточнить, что имя файла на сервере не содержит символа «/» впереди. Я просто добавил это, чтобы помочь найти правильное расположение и имя файла, поскольку предыдущие попытки закончились следующей ошибкой ftplib.error_perm: 500 Unknown command.
полный путь к файлу
ftp.glcf.umd.edu/glcf/Landsat/WRS2/p012/r018/p012r018_5dx19900722.TM-GLS1990/p012r018_5dt19900722_z20_30.tif.gz'
/
) вашей файловой системы. У вас там достаточно разрешений? Он пытается сохранить файл с исходным именем файла, которому предшествует/
, таким образом создавая файл в/
. - person Valdir Stumm Junior   schedule 11.08.2012