python ftplib模块使用

# -*- coding: utf-8 -*-
#python 27
#2018.12.27
#实现从ftp上下载文件到本地
from ftplib import FTP

def ftpconnect(host, username, password):
    ftp = FTP()  # 设置变量
    timeout = 30
    port = 21
    ftp.connect(host, port, timeout)  # 连接FTP服务器
    ftp.login(username,password)  # 登录
    return ftp

def downloadfile(ftp, remotepath, localpath):
    ftp.cwd(remotepath)  # 设置FTP远程目录(路径)
    list = ftp.nlst()  # 获取目录下的文件,获得目录列表
    for name in list:
        print(name)
        path = localpath + name  # 定义文件保存路径
        f = open(path, 'wb')  # 打开要保存文件
        filename = 'RETR ' + name  # 保存FTP文件
        ftp.retrbinary(filename, f.write)  # 保存FTP上的文件
    ftp.set_debuglevel(0)         #关闭调试
    f.close()                    #关闭文件


if __name__ == "__main__":
    ftp = ftpconnect('192.168.2.250', "dev-app",'360che.com')
    downloadfile(ftp,'/App/android/','e:/android/')
    ftp.quit()

# -*- coding: utf-8 -*-
#python 27
#2018.12.27
#实现从ftp上下载文件到本地\并筛选出最新的一个文件
from ftplib import FTP
import os


def ftpconnect(host, username, password):
    ftp = FTP()  # 设置变量
    timeout = 30
    port = 21
    ftp.connect(host, port, timeout)  # 连接FTP服务器
    ftp.login(username,password)  # 登录
    return ftp

def downloadfile(ftp, remotepath, localpath):
    ftp.cwd(remotepath)  # 设置FTP远程目录(路径)
    list = ftp.nlst()  # 获取目录下的文件,获得目录列表
    for name in list:
        print(name)
        path = localpath + name  # 定义文件保存路径
        f = open(path, 'wb')  # 打开要保存文件
        filename = 'RETR ' + name  # 保存FTP文件
        ftp.retrbinary(filename, f.write)  # 保存FTP上的文件
    ftp.set_debuglevel(0)         #关闭调试
    f.close()                    #关闭文件

def new_report(test_report):
    lists = os.listdir(test_report)                                    #列出目录的下所有文件和文件夹保存到lists
    print(list)
    lists.sort(key=lambda fn:os.path.getmtime(test_report + "\\" + fn))#按时间排序
    file_new = os.path.join(test_report,lists[-1])                     #获取最新的文件保存到file_new
    print(file_new)
    return file_new

if __name__ == "__main__":
    ftp = ftpconnect('192.168.2.250', "dev-app",'360che.com')
    downloadfile(ftp,'/App/android/','e:/android/')
    ftp.quit()
    test_report="E:/APP/0606"#目录地址
    new_report(test_report)

猜你喜欢

转载自blog.csdn.net/bjxingmeng/article/details/85281963