2012-11-23 95 views
1

我有一段Python代码来从ftp下载文件。该代码下载列表中的第一个文件,但未能下载第二个文件。可能是什么问题呢?
使用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() 
+1

它是如何失败?抛出异常吗? –

+2

另外,'file = available_days [available_days.index(day)]'这一行可以用'file = day'代替。更好的是,只需在'available_days:'中使用'for file并放下以下行。 –

+0

ftplib.error_perm:550系统找不到指定的文件。 –

回答

3

删除您的来电ftp.cwd(..)

这是连升列表中的每个迭代一个目录,而不是停留在正确的文件夹中的文件。