【发布时间】:2012-11-23 20:04:18
【问题描述】:
我有一段 Python 代码可以从 ftp 下载文件。该代码会下载可用天数列表中的第一个文件,但无法下载第二个文件。可能是什么问题呢?
import os, ftplib
destdir='D:\precipitation\dl'
ftp = ftplib.FTP('ftp.itc.nl')
ftp.login('anonymous', '')
ftp.cwd('pub/mpe/msg')
available_days=['summsgmpe_20100101.zip','summsgmpe_20100102.zip', 'summsgmpe_20100103.zip', 'summsgmpe_20100104.zip', 'summsgmpe_20100105.zip', 'summsgmpe_20100106.zip', 'summsgmpe_20100107.zip', 'summsgmpe_20100108.zip']
hdfs = list()
for day in available_days :
file = available_days[available_days.index(day)]
print 'file=', file
local_file = os.path.join(destdir, file)
ftp.retrbinary('RETR %s' %file, open(local_file, 'wb').write)
hdfs.append(os.path.abspath(local_file))
ftp.cwd('..')
ftp.quit()
【问题讨论】:
-
它是如何失败的?是否抛出异常?
-
顺便说一句,
file = available_days[available_days.index(day)]行可以替换为file = day。更好的是,只需使用for file in available_days:并完全删除以下行。 -
ftplib.error_perm: 550 系统找不到指定的文件。
标签: python ftp download ftplib