python使用ftplib做ftp操作

时间:2022-12-12 20:33:59

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. 利用PHP从淘宝采集评论和成交数据

    如果不想通过淘宝开放平台API获取数据,那么另外一个很好的办法就是采集了.一般来说,采集一个网页上的内容,只需要用CURL获取源代码,然后用正则表达式取出需要的内容就可以,不过如果这样载入一个淘宝的页 ...

  2. Emmet快速开发

    标签元素关系展开 div.wrap>div.content>(div.inner_l+div.inner_r)^div.sider ------缩写展开如下---------------- ...

  3. Lucene 索引功能

    Lucene 数据建模 基本概念 文档(doc): 文档是 Lucene 索引和搜索的原子单元,文档是一个包含多个域的容器. 域(field): 域包含“真正的”被搜索的内容,每一个域都有一个标识名称 ...

  4. ecos的mvcl

    m 数据模型抽象层 v 视图 c 控制器 l 业务逻辑 mvc与mvcl区别 mvc中的m是mvcl中m+l

  5. Win7共享文件夹简单?这个共享问题可以难倒90%的人

    信息化社会,没有哪个公司不用电脑办公了.一个办公室里面的同事相互之间利用系统的共享功能,共享一些文件和软件已经是司空见惯的了,这个不需要多么复杂的操作.我们使用最多的windows7操作系统就能很方便 ...

  6. [Swift]LeetCode343. 整数拆分 | Integer Break

    Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...

  7. Notes for "Python in a Nutshell"

    Introduction to Python Wrap C/C++ libraries into Python via Cython and CFFI. Python implementations ...

  8. LeetCode(68):文本左右对齐

    Hard! 题目描述: 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本. 你应该使用“贪心算法”来放置给定的单词:也就是 ...

  9. Python入门 更换pip源的方法

    pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple ...

  10. SqlServer中的UNION操作符在合并数据时去重的原理以及UNION运算符查询结果默认排序的问题

    本文出处:http://www.cnblogs.com/wy123/p/7884986.html 周围又有人在讨论UNION和UNION ALL,对于UNION和UNION ALL,网上说的最多的就是 ...