zoukankan      html  css  js  c++  java
  • Python之ftplib模块

    一、引言:

      某一天,开发哥们跟我反映lftp和java写的ftp程序下载文件有问题,具体情况如下:当一个大于1G的文件已经下载完毕以后一直出现夯住的情况。为了重现开发哥们所说情况,我就自己用pytho写了一个ftp的脚本,其中就有调用ftplib模块。下面重点介绍一下ftplib模块。

    二、ftplib模块介绍:

      ftplib是python的内置的一个标准模块,它提供了极强大的对FTP服务器的操作,通过它我们可以连接并操作FTP服务端。 

    #!/usr/bin/env python
    # -*- coding=utf-8 -*-
    
    from ftplib import FTP
    import sys
    import threading
    
    
    def ftpconnect():
        #ftp服务器的IP
        ftp_server = '192.168.2.100'
        #ftp的用户名
        username = 'Richard'
        #用户的密码
        password = 'Richard'
        #创建一个ftp的实例
        ftp=FTP()
        #打开调试级别2,显示详细信息
        ftp.set_debuglevel(2)
        #连接ftp服务器,需要输入IP,端口,以及超时时间
        ftp.connect(ftp_server,2100,600)
        #连接的用户名、密码
        ftp.login(username,password)
        return ftp
    
    def downloadfile():
        #需要将下载文件存在的路径和文件名
        remotepath = sys.argv[2]
        #连接ftp服务器
        ftp = ftpconnect()
        #获得欢迎信息
        print ftp.getwelcome()
    
        bufsize = 10240
        localpath = '/root/Richard.txt'
        with open(localpath,'wb') as fp:
            # fp = open(localpath,'wb')
            ftp.retrbinary('RETR ' + remotepath,fp.write,bufsize)
            print ("hello")
            ftp.set_debuglevel(0)
            # fp.close()
            ftp.quit()
    
    def uploaded(filename):
        ftp = ftpconnect()
        remotepath = "/Richard/%s"%filename
        print ftp.getwelcome()
        bufsize = 1024
        localpath = '/var/ftp/Richard/%s' %filename
        with open(localpath,'wb') as fp:
            # fp = open(localpath,'rb')
            ftp.storbinary('STOR ' + remotepath,fp,bufsize)
            ftp.set_debuglevel(0)
            # fp.close()
            ftp.quit()
    
    def ftp_multithreading(func,filename):
        t = threading.Thread( target = func,args=(filename,) )
        t.start()
    
    if __name__ == "__main__":
        ftp_multithreading(sys.argv[1],sys.argv[2])

    未完待续。。。

  • 相关阅读:
    [BZOJ4553][TJOI2016&HEOI2016]序列
    树套树乱讲的代码
    树套树乱讲
    [Luogu4174][NOI2006]最大获益
    [BZOJ3879]SvT
    [BZOJ3611][HEOI2014]大工程
    [BZOJ1501][NOI2005]智慧珠游戏
    [BZOJ1499][NOI2005]瑰丽华尔兹
    [BZOJ3460] Jc的宿舍
    [HDU4812]D Tree
  • 原文地址:https://www.cnblogs.com/Richardzhu/p/5332581.html
Copyright © 2011-2022 走看看