# python3.6 from ctypes import * import os import datetime import ftplib import time class myFtp: ftp = ftplib.FTP() def __init__(self, host, port=21): self.ftp.connect(host, port) self.ftp.encoding = "utf8" def Login(self, user, passwd): self.ftp.login(user, passwd) def DownLoadFile(self, LocalFile, RemoteFile): # 下载当个文件 file_handler = open(LocalFile, 'wb') print(file_handler) self.ftp.retrbinary('RETR ' + RemoteFile, file_handler.write) file_handler.close() return True def DownLoadFileTree(self, LocalDir, RemoteDir): # 下载整个目录下的文件 if not os.path.exists(LocalDir): os.makedirs(LocalDir) self.ftp.cwd(RemoteDir) RemoteNames = self.ftp.nlst() for file in RemoteNames: Local = os.path.join(LocalDir, file) if file.find(".") == -1: if not os.path.exists(Local): os.makedirs(Local) self.DownLoadFileTree(Local, file) else: self.DownLoadFile(Local, file) self.ftp.cwd("..") return def close(self): self.ftp.quit() if __name__ == "__main__": ftp = myFtp('ip') ftp.Login('user', 'password') data = datetime.datetime.now().strftime('%Y-%m-%d') ftp.DownLoadFileTree(f'D:\ftp\{data}', '本地目录') # 从目标目录下载到本地目录d盘 ftp.close()