# 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()