我一整天都在努力弄清楚如何使用python ftplib
模块从ftp服务器下载文件夹,子文件夹和文件,但我只能想出这个。
from ftplib import FTP
import sys, ftplib
sys.tracebacklimit = 0 # Does not display traceback errors
sys.stderr = "/dev/null" # Does not display Attribute errors
Host = "ftp.debian.org"
Port = 21
Username = ""
Password = ""
def MainClass():
global ftp
global con
Host
Port
ftp = FTP()
con = ftp.connect(Host, Port) # Connects to the host with the specified port
def grabfile():
source = "/debian/"
filename = "README.html"
ftp.cwd(source)
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write)
ftp.quit()
localfile.close()
try:
MainClass()
except Exception:
print "Not Connected"
print "Check the address", Host + ":" + str(Port)
else:
print "Connected"
if ftplib.error_perm and not Username == "" and Password == "":
print "Please check your credentials\n", Username, "\n", Password
credentials = ftp.login(Username, Password)
grabfile()
这个python脚本将从ftp.debian.org下载一个README.html文件但是,我希望能够下载包含文件和子文件夹的整个文件夹,我似乎无法弄明白。我使用这个模块搜索了不同的python脚本,但我似乎无法找到任何我想要的东西。
非常感谢任何建议或帮助。
注意:
我仍然希望使用python来完成这项工作,但它可能是一个不同的模块,例如ftputil
或其他任何模块。
提前致谢, 亚历
答案 0 :(得分:1)
简短的解决方案: 你可以运行:“wget -r ftp://username:password@ftp.debian.org/debian/ *”来获取debian目录下的所有文件。 然后你可以在python中处理文件。
长期解决方案: 您可以使用ftplib查看每个目录列表,获取解析它的目录列表,然后获取每个文件并递归到目录中。 如果您在网络上搜索,则会找到解决此问题的previous posts on stackoverlow