脚本在ftp目录中读取文件但不下载它们

时间:2017-03-15 20:17:34

标签: python python-2.7 python-3.x download 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')

for subdir, dirs, files in os.walk(directory):
     for file in files:
        full_fname = os.path.join(root, fname);
        print ('Opening local file ')
         ftp.retrbinary('RETR U:/Test Folder' + fname,
                       handleDownload,
                       open(full_fname, 'wb'));
         print ('Closing file ' + filename)
         file.close();
ftp.close()

1 个答案:

答案 0 :(得分:0)

以下是使用pysftp库执行此操作的一种方法:

import pysftp

with pysftp.Connection('hostname', username='username', password='password') as sftp:
    ftp_files = sftp.listdir('/ftp/dir/')

    for file in ftp_files:
        sftp.get(os.path.join('/ftp/dir/', file), localpath=os.path.join('/path/to/save/file/locally/', file))