Python - 使用 python ftplib 模块下载所有文件夹、子文件夹和文件
Python - download all folders, subfolders, and files with the python ftplib module
我整天都在努力弄清楚如何使用 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
或任何其他模块。
提前致谢,
亚历克斯
简短的解决方案:
您可能只需 运行: "wget -r ftp://username:password@ftp.debian.org/debian/*" 即可获取 debian 目录下的所有文件。
然后就可以处理python.
中的文件了
长解:
您可以使用 ftplib 遍历每个目录列表,获取目录列表对其进行解析,然后获取每个文件并递归到目录中。
如果您在网上搜索,您会发现 previous posts on stackoverlow 解决了这个问题
我整天都在努力弄清楚如何使用 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
或任何其他模块。
提前致谢, 亚历克斯
简短的解决方案: 您可能只需 运行: "wget -r ftp://username:password@ftp.debian.org/debian/*" 即可获取 debian 目录下的所有文件。 然后就可以处理python.
中的文件了长解: 您可以使用 ftplib 遍历每个目录列表,获取目录列表对其进行解析,然后获取每个文件并递归到目录中。 如果您在网上搜索,您会发现 previous posts on stackoverlow 解决了这个问题