将文件从 ftp 服务器下载到目录时出现问题

Problems downloading files from ftp server to directory

我正在尝试将文件从 ftp 服务器下载到本地文件夹。下面我包含了我的代码,该脚本能够成功访问 ftp 并列出 ftp 服务器上的文件名但是我的问题在于我不确定如何将它们下载到本地目录。

from ftplib import FTP
import os, sys, os.path

def handleDownload(block):
    file.write(block)

ddir='U:/Test Folder'
os.chdir(ddir)
ftp = FTP('sidads.colorado.edu')
ftp.login()

print ('Logging in.')
directory = '/pub/DATASETS/NOAA/G02158/unmasked/2012/04_Apr/'

print ('Changing to ' + directory)
ftp.cwd(directory)
ftp.retrlines('LIST')

print ('Accessing files')

filenames = ftp.nlst() # get filenames within the directory
print (filenames)

我尝试使用下面的代码,但是它给了我下面照片中的错误。

for filename in filenames:
    if filename != '.':
        local_filename = os.path.join('U:/Test Folder/',                   filename)
    file = open(local_filename, 'wb')
    ftp.retrbinary('RETR '+ filename, file.write)
    file.close()
ftp.quit()

尝试以下操作:

for filename in filenames:
    if filename not in ['.', '..']:
        local_filename = os.path.join(ddir, filename)

        with open(local_filename, 'wb') as f_output:
            ftp.retrbinary('RETR '+ filename, f_output.write)

ftp.quit()

您的代码仍在尝试下载 . 个文件名。您需要缩进有效文件名的书写。同样通过使用 with 它会自动关闭文件。