下载列表中的所有文件时出现python FTP错误

时间:2014-09-22 15:20:14

标签: download ftplib

有人知道为什么python没有下载下面列表中的所有文件吗?第一个文件下载,然后我得到一个' error2'对于第二个文件。

fdnload1 = ['AAA092214.TXT', '092214 REPORT TOTALS.TXT']
try:
    # DOWNLOAD FILES
    for fdn in fdnload1:
        ftrans1 = open(fdn,'wb')
        ftp.retrbinary('RETR ' + fdn, ftrans1.write)
        print 'Downloading...' + fdn
except:
    print 'error2'

结果:

Downloading...AAA092214.TXT
error2

当我在没有实际下载文件的情况下运行程序时,它会遍历所有文件:

try:
    # DOWNLOAD FILES
    for fdn in fdnload1:
        print 'Downloading...' + fdn
except:
    print 'error2'

结果:

Downloading...AAA092214.TXT
Downloading...092214 REPORT TOTALS.TXT
[Finished in 0.3s]

E D I T#1: 我能够通过创建一个单独的函数来下载文件来获取fdnload1中的所有文件,但我仍然会收到错误,并且它们来自实际的下载过程(请参阅我的结果是打印' download1()函数中的错误'。有谁知道为什么?

另外,我刚检查了下载的文件并且它们是空的,所以它们实际上没有正确下载...

def download1(fdn):
    os.chdir('C:/directory10')
    try:
        ftrans1 = open(fdn,'wb')
        ftp.retrbinary('RETR ' + fdn, ftrans1.write)
        print 'file: ' + fdn + 'download complete...'
    except:
        print 'error in download1() function'

修改原始代码以运行download()函数:

try:
    # DOWNLOAD FILES
    for fdn in fdnload1:
        print 'Downloading... ' + fdn
        download1(fdn)
except:
    print 'error2'

结果:

Downloading... AAA092214.TXT
error in download1() function
Downloading... 092214 REPORT TOTALS.TXT
error in download1() function

1 个答案:

答案 0 :(得分:0)

这是ftp端的用户权限错误。

ftplib.error_perm:550 AASN092214.PCI:权限被拒绝。

在超级用户下登录,我可以下载所有带有和不带download1()函数的文件......

感谢