码迷,mamicode.com
首页 > 编程语言 > 详细

Python之ftplib模块

时间:2016-03-29 14:19:14      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:

一、引言:

  某一天,开发哥们跟我反映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])

未完待续。。。

Python之ftplib模块

标签:

原文地址:http://www.cnblogs.com/Richardzhu/p/5332581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!