ftp 备份脚本

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

 

posted @ 2020-10-12 09:16  不可描述的细节  阅读(129)  评论(0编辑  收藏  举报