我正在编写一个脚本,通过FTP下载目录中的所有文件。到目前为止,我已经成功连接并获取了一个文件,但是我似乎无法批量工作(获取目录中的所有文件)。以下是我目前的代码:
from ftplib import FTP
import os, sys, os.path
def handleDownload(block):
file.write(block)
print ".",
ddir='C:\\Data\\test\\'
os.chdir(ddir)
ftp = FTP('test1/server/')
print 'Logging in.'
ftp.login('user1\\anon', 'pswrd20')
directory = '\\data\\test\\'
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 C:\\Data\\test\\' + fname,
handleDownload,
open(full_fname, 'wb'));
print 'Closing file ' + filename
file.close();
ftp.close()
我敢打赌你可以看出来,当我运行它时它并没有做太多事情,所以如果有任何改进的建议将不胜感激。
ftp.quit()
代替ftp.close()
。请参考此链接:https://docs.python.org/2/library/ftplib.html#ftplib.FTP.quit - Oranfilenames
列表中有一个目录名,那么它将无法工作。 - Jhon Margalit