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

一、导入模块并进行连接

>>> from ftplib import FTP >>> ftp = FTP(‘ftp.yabogo.com’) >>> ftp.login(‘yourloginname’,'password’) 

FTP登录成功

连接到FTP可还有如下形式:

1、实例化并直接连接,ftp=FTP(host=”, user=”, passwd=”, acct=”, timeout=”)

2、先实例ftp=FTP(), 再使用 connect(host=”, port=0, timeout=-999)连接,最后login(user=”, passwd=”)

二、查看目录文件或更改目录

>>> ftp.retrlines(‘LIST’) 

1、retrlines(cmd)是以文本形式查看当前目录文件,可用cmd:RETR, LIST, NLST, MLSD

2、如果要指定查看某个目录的文件列表,可以用dir(dirname) ,dirname是可选参数,默认是当前目录;

3、cwd(dirname), 更改目录! Change to a directory.

三、查看文件的大小

>>> ftp.size(‘yabogo_logo.gif’) 2452

四、ftp上传一个文件

>>> fp=open(‘F:/test.php’,'rb’)
>>> ftp.storbinary(‘STOR test.php’,fp)

二进上传文件成功

storbinary( cmd, fp, blocksize=8192, callback=None, rest=None)
Args:
cmd: A STOR command.
fp: A file-like object with a read(num_bytes) method.
blocksize: The maximum data size to read from fp and send over
the connection at once. [default: 8192]
callback: An optional single parameter callable that is called on
on each block of data after it is sent. [default: None]
rest: Passed to transfercmd(). [default: None] Returns:
The response code.

五、退出关闭,并退出FTP

>>> ftp.quit() ’221 Goodbye, logging out.’

ftplib有很多可用的方法,导入模块后可通过help()查看帮助信息。



>>> from ftplib import FTP

>>> ftp=FTP('ftp.python.org')

>>> ftp.login()

'230 Login successful.'

>>> ftp.dir()

drwxrwxr-x 7 1004 1004 512 Aug 13 01:35 pub

>>> ftp.cwd('pub')

'250 Directory successfully changed.'

>>> ftp.dir()

drwxrwxr-x 5 1000 1004 1024 Dec 24 11:04 docs.python.org

drwxrwsr-x 2 1002 1004 512 Oct 12 2001 jython

lrwx------ 1 0 1003 25 Aug 03 2001 python -> www.python.org/ftp/python

drwxr-xr-x 9 1018 1004 512 Feb 02 03:44 pyvault

drwxr-xr-x 2 1005 1004 512 May 06 2003 tmp

drwxrwsr-x 59 1004 1004 3072 Feb 03 14:58 http://www.python.org/

>>> ftp.quit()

'221 Goodbye.'


下面一个下载文件的示例



#!/usr/bin/env python



#author:Jims of http://www.ringkee.com/

#create date: 2005/02/05

#description: Using ftplib module download a file from a ftp server.



from ftplib import FTP



ftp=FTP()



ftp.set_debuglevel(2) #打开调试级别2,显示详细信息

ftp.connect('ftp_server','port') #连接

ftp.login('username','password') #登录,如果匿名登录则用空串代替即可



print ftp.getwelcome() #显示ftp服务器欢迎信息

ftp.cwd('xxx/xxx/') #选择操作目录

bufsize = 1024 #设置缓冲块大小

filename='dog.jpg' 

file_handler = open(filename,'wb').write #以写模式在本地打开文件

ftp.retrbinary('RETR dog.jpg',file_handler,bufsize) #接收服务器上文件并写入本地文件

ftp.set_debuglevel(0) #关闭调试



ftp.quit() #退出ftp服务器



下面一个上传文件的示例,要成功运行该脚本,需在ftp服务器上有上传文件的权限。



#!/usr/bin/env python



#author:Jims of http://www.ringkee.com/

#create date: 2005/02/05

#description: Using ftplib module upload a file to a ftp server.



from ftplib import FTP



ftp=FTP()



ftp.set_debuglevel(2)

ftp.connect('ftp_server','port')

ftp.login('username','password')



print ftp.getwelcome()

ftp.cwd('xxx/xxx/')

bufsize = 1024

filename='dog.jpg'

file_handler = open(filename,'rb')

ftp.storbinary('STOR dog.jpg',file_handler,bufsize) #上传文件

ftp.set_debuglevel(0)



file_handler.close() #关闭文件

ftp.quit()

python使用ftplib做ftp操作的更多相关文章

  1. Python的网络编程[1] -> FTP 协议[2] -> 使用 ftplib 建立 FTP 客户端

    使用 ftplib 建立 FTP 客户端 用于建立FTP Client,与 pyftplib 建立的 Server 进行通信. 快速导航 1. 模块信息 2. 建立 FTP 客户端 1. 模块信息 1 ...

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

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...

  3. python之模块ftplib(实现ftp上传下载代码)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...

  4. Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...

  5. python迭代-如何对迭代器做切片操作

    如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容,我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getI ...

  6. Python之ftplib模块

    一.引言: 某一天,开发哥们跟我反映lftp和java写的ftp程序下载文件有问题,具体情况如下:当一个大于1G的文件已经下载完毕以后一直出现夯住的情况.为了重现开发哥们所说情况,我就自己用pytho ...

  7. Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法

    知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...

  8. python3+ftplib实现ftp客户端

    一.程序说明 1.1 程序实现关键点 python实现ftp客户端,主要会遇到以下四个问题: 第一个问题是使用什么包实现----我们这里是使用标准库中的ftplib 第二个问题是怎么连接登录ftp服务 ...

  9. python的ftplib模块

    Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC95 ...

随机推荐

  1. 浅谈MySQL外键

    http://www.xiaoxiaozi.com/2009/07/12/1158/ 像MySQL这样的关系型数据库管理系统,它们的基础是在数据库的表之间创建关系的能力.通过方便地在不同表中建立记录到 ...

  2. C#基础关键字

    1:override & new public class A { public virtual void Test() { Console.WriteLine("A Test()& ...

  3. DateTime操作,时间范围,加减

    DB里边存的是char类型数组的时间,例如20151111 12171220000,现在需要把这个时间加减5s,组成 一个时间范围 然后再写存储过程. 想到的办法就是把这个时间先转换成DateTime ...

  4. vs学习过程中遇见的各种问题

    1.  argument to type "char *"is incompatible with parameter of type "LPWSTR" 解决: ...

  5. shell-函数、数组、正则

    expect ssh远程脚本 expect非交互式 脚本代码如下: #!/usr/bin/expect set timeout spawn ssh -l root 192.168.1.1 expect ...

  6. Linux下查看系统CPU个数、核心数、线程数

    1.查看物理CPU个数 (env) root@vmware01:~# grep 'physical id' /proc/cpuinfo physical physical physical physi ...

  7. kubernetes对象之Job

    系列目录 job是什么 对于ReplicaSet.ReplicationController等类型的控制器而言,它希望pod保持预期数目.持久运行下去,除非用户明确删除,否则这些对象一直存在,它们针对 ...

  8. libraries_v140_x64_py35_1.0.1.tar.bz2 libraries_v120_x64_py27_1.1.0.tar 下载链接以及百度云下载链接

    下载链接 wget  -c  https://github.com/willyd/caffe-builder/releases/download/v1.0.1/libraries_v140_x64_p ...

  9. C#获取Access数据库中的所有表名和列名

    //C#获取Access数据库中的所有表名和列名    string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" ...

  10. Python 008- 游戏2048

    #-*- coding:utf-8 -*- import curses from random import randrange, choice # generate and place new ti ...