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])

未完待续。。。

时间: 2024-11-16 18:23:26

Python之ftplib模块的相关文章

python使用ftplib模块实现FTP文件的上传下载

python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def upload(f, remote_path, local_path): fp = open(local_path, "rb") buf_size = 1024 f.storbinary("STOR {}".format(remote_path), fp, buf_size) f

Python 的 ftplib 模块

from ftplib import FTP    #加载 FTP 模块 ftp=FTP()    #创建 ftp 客户端实例 ftp.set_debuglevel(2)    #打开调试级别2,显示详细信息 ftp.connect('IP', 'port')    #连接的 ftp server 的 ip 和 端口 ftp.login('user', 'password')    #连接的用户名,密码 ftp.getwelcome()    #打印出欢迎信息 ftp.cwd('pathname

Python ftplib模块

Help on module ftplib: NAME ftplib - An FTP client class and some helper functions. 名字: ftplib 模块 - 一个FTP客户端类 和 一些辅助的方法 FILE c:\python27\lib\ftplib.py DESCRIPTION Based on RFC 959: File Transfer Protocol (FTP), by J. Postel and J. Reynolds Example: >

python:使用ftplib编写FTP客户端

Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC959 ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect("IP","port") #连接的ftp sever和

ftplib模块

Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC959 ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量ftp.set_debuglevel(2) #打开调试级别2,显示详细信息ftp.connect("IP","port") #连接的ftp sever和端口

Python中subprocess 模块 创建并运行一个进程

python的subprocess模块,看到官方声明里说要尽力避免使用shell=True这个参数,于是测试了一下: from subprocess import call import shlex cmd = "cat test.txt; rm test.txt" call(cmd, shell=True) 运行之后: 1:打开并浏览了test.txt文件 2:删除了test.txt文件 from subprocess import call import shlex cmd = &

python时间处理模块 datetime time模块 deltetime模块

1 首先介绍time模块,因为简单 python 自带模块 本人使用time模块,只使用两个函数 time函数和sleep函数 import time a.     time.time()   函数 返回unix时间  常用作两个时间差的计算 b.     time.sleep()  休眠多久,精度为子秒(subsecond) In [90]: t1 = time.time() In [91]: t1 Out[91]: 1461400225.877932 In [92]: time.sleep(

python安装mysqldb模块

今天在阿里云一台新的服务器部署程序后台,发现上面的python缺少MySQLDB 模块,记录安装过程. 首先django程序,运行 python manage.py sycdb 报错: ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb MySQLdb模块的包名字叫mysql-python,于是pip安装之,(关于pip,可以参考这篇文章) 运行: pip install mysql-python

Python 利用pytesser模块识别图像文字

使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the Tesseract engine from Google.是谷歌OCR开源项目的一个模块,可将图片中的文字转换成文本(主要是英文). 1.pytesser安装 使用设备:win8 64位 PyTesser使用Tesseract OCR引擎,将图像转换到可接受的格式,然后执行tesseract提取出文