【问题标题】:Downloading from an ftp using Python使用 Python 从 ftp 下载
【发布时间】: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


【解决方案1】:

删除你对ftp.cwd(..)的电话

这是在列表的每次迭代中向上移动一个目录,而不是停留在文件所在的正确文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2011-05-29
    • 2021-10-14
    • 1970-01-01
    • 2021-12-08
    • 2012-10-04
    • 1970-01-01
    相关资源
    最近更新 更多