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性能优化-慢查询分析、优化索引和配置 MySQL索引介绍

    MySQL索引介绍 聚集索引(Clustered Index)----叶子节点存放整行记录辅助索引(Secondary Index)----叶子节点存放row identifier-------Inn ...

  2. python 写数据到txt 文件

    # coding=utf-8 import codecs # list = [[1,2],[3,4]] list = ['{"PN":"34VT123",&qu ...

  3. Hnu 11187 Emoticons :-) (ac自己主动机+贪心)

    题目大意: 破坏文本串.使之没有没有出现表情.破坏就是用空格替换.问最少须要破坏多少个字符. 思路分析: 初看跟Hdu 2457 没什么差别,事实上Hdu2457是要求将字符替换成ACGT,而这个仅仅 ...

  4. allegro设置鼠标滚轮放大缩小

    allegro设置鼠标滚轮放大缩小 allegro16版本以增加可以通过鼠标滚轮进行PCB的放大缩小.具体方法如下: 首先在HOME路径下找到PCBENV文件夹,进入该文件夹打开ENV文件. 在ENV ...

  5. C语言--函数篇

      1-1.函数简单调用 1 #include<stdio.h> 2 #include<string.h> 3 #include<windows.h> 4 int ...

  6. 【转载】FAT32文件系统详解

    硬盘是用来存储数据的,为了使用和管理方便,这些数据以文件的形式存储在硬盘上.任何操作系统都有自己的文件管理系统,不同的文件系统又有各自不同的逻辑组织方式.例如:常见的文件系统有FAT,NTFS,EXT ...

  7. IOS 为UILabel添加长按复制功能

    IOS 为UILabel添加长按复制功能 在iOS中下面三个控件,自身就有复制-粘贴的功能: 1.UITextView 2.UITextField 3.UIWebView UIKit framewor ...

  8. Appium python自动化测试系列之Capability介绍(五)

    ​5.1 Capability介绍 5.1.1 什么是Capability 在讲capability之前大家是否还记得在讲log时给大家看过的启动时的日志?在我们的整个启动日志中会出现一些配置信息,其 ...

  9. Scrapy爬虫入门系列1 安装

    安装python2.7 参见CentOS升级python 2.6到2.7 安装pip 参见CentOS安装python setuptools and pip‎ 依赖 https://docs.scra ...

  10. uGUI动态加载控件位置错误(转自:https://www.cnblogs.com/mezero/p/4542939.html)

    最近在使用uGUI时遇到了一个问题,在此记录一下.在Canvas的Render Mode设置为Screen Space-Overlay模式时,动态加载控件是不会发生问题的.但是在Screen Spac ...