ftplib.FTP 类方法

在表1 中列出了最常用的方法,这个表并不全面——想查看所有的方法,请参阅模块源代码
——但这里列出的方法组成了我们在 Python 中 FTP 客户端编程的“API”。
也就是说,你不一定要使用其它的方法,因为它们或者是辅助函数,或者是管理函数,或者是
被 API 调用的。

方法                                         描述
login(user=‘anonymous‘,         登录到 FTP 服务器,所有的参数都是可选的
passwd=‘‘, acct=‘‘)             
pwd()                                       得到当前工作目录
cwd(path)                                把当前工作目录设置为 path
dir([path[,...[,cb]])                     显示 path 目录里的内容,可选的参数 cb 是一个回调函数,它
                                      会被传给 retrlines()方法
nlst([path[,...])                   与 dir()类似,但返回一个文件名的列表,而不是显示这些文件名
retrlines(cmd [, cb])             给定 FTP 命令(如“RETR filename”),用于下载文本文件。可选的回调函数 cb 用于处理文件的每一行
retrbinary(cmd, cb[,            
bs=8192[, ra]])                    与 retrlines()类似,只是这个指令处理二进制文件。回调函数 cb 用于处理每一块(块大小默认为 8K)下载的数据。
storlines(cmd, f)                  给定 FTP 命令(如“STOR filename”),以上传文本文件。要给定一个文件对象 f
storbinary(cmd, f[,               与 storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象 f,上传块大小 bs 默认为 8Kbs=8192])
bs=8192])
rename(old, new)                     把远程文件 old 改名为 new
delete(path)                         删除位于 path 的远程文件
mkd(directory)                     创建远程目录
rmd(directory)                     删除远程目录
quit()                                   关闭连接并退出

在一般的 FTP 通讯中,要使用到的指令有 login(), cwd(), dir(), pwd(), stor*(), retr*()
和 quit()。有一些没有列出的 FTP 对象方法也是很有用的。

ftp的建立既可以先ftp=ftplib.FTP()实例化后再ftp=ftp.connect(‘user‘,‘passwd‘),也可以直接实例化链接ftp=ftplib.FTP(‘user‘,‘passwd‘)请参阅 Python 的文档以得到更多关于
FTP 对象的信息:
http://python.org/docs/current/lib/ftp-objects.html

Example 1展示了如何登陆并获得登陆目录的文件列表. 注意这里的文件列
表 (列目录操作)格式与服务器有关(一般和主机平台的列目录工具输出格式相
同, 例如 Unix 下的 ls 和 Windows/DOS 下的 dir )Example 1. 使用 ftplib 模块获得目录列表
File: ftplib-example-1.py
import ftplib
ftp = ftplib.FTP("www.python.org")
ftp.login("anonymous", "ftplib-example-1")
print ftp.dir()
ftp.quit()
total 34
drwxrwxr-x
drwxrwxr-x
drwxrwxr-x
lrwxrwxrwx
welcome.msg
drwxr-xr-x
drwxr-sr-x
drwxrwxr--
drwxr-xr-x
...
11
11
2
1 root
root
root
root 4127
4127
4127
bin 512
512
512
11 Sep
Sep
Sep
Jun 14
14
13
29 14:18
14:18
15:18
14:34
3
3
2
3 root
root
root
root wheel
1400
4127
wheel 512
512
512
512 May 19
Jun 9
Feb 8
May 19 1998
1997
1998
1998
.
..
RCS
README ->
bin
dev
dup
etc
下载文件很简单; 使用合适的 retr 函数即可. 注意当你下载文本文件时, 你
必须自己加上行结束符. Example 2 中使用了一个 lambda 表达式完成这项
工作.
Example 2. 使用 ftplib 模块下载文件
File: ftplib-example-2.py
import ftplib
import sys
def gettext(ftp, filename, outfile=None):
# fetch a text file
if outfile is None:
outfile = sys.stdout
# use a lambda to add newlines to the lines read from the server
ftp.retrlines("RETR " + filename, lambda s, w=outfile.write:
w(s+"\n"))
def getbinary(ftp, filename, outfile=None):# fetch a binary file
if outfile is None:
outfile = sys.stdout
ftp.retrbinary("RETR " + filename, outfile.write)
ftp = ftplib.FTP("www.python.org")
ftp.login("anonymous", "ftplib-example-2")
gettext(ftp, "README")
getbinary(ftp, "welcome.msg")
WELCOME to python.org, the Python programming language home site.
You are number %N of %M allowed users.
Ni!
Python Web site: http://www.python.org/
CONFUSED FTP CLIENT? Try begining your login password with ‘-‘ dash.
This turns off continuation messages that may be confusing your client.
...
最后, Example 3 将文件复制到 FTP 服务器上. 这个脚本使用文件扩展名来
判断文件是文本文件还是二进制文件.
Example 3. 使用 ftplib 模块上传文件
File: ftplib-example-3.py
import ftplib
import os
def upload(ftp, file):
ext = os.path.splitext(file)[1]
if ext in (".txt", ".htm", ".html"):
ftp.storlines("STOR " + file, open(file))
else:
ftp.storbinary("STOR " + file, open(file, "rb"), 1024)
ftp = ftplib.FTP("ftp.fbi.gov")
ftp.login("mulder", "trustno1")
upload(ftp, "trixie.zip")
upload(ftp, "file.txt")
upload(ftp, "sightings.jpg")

时间: 2024-10-29 19:05:49

ftplib.FTP 类方法的相关文章

python之模块ftplib(FTP协议的客户端)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(FTP协议的客户端) #需求:快速进行ftp上传 ,下载,查询文件 from ftplib import FTP ftp = FTP() #设置变量 timeout = 30 port = 21 ftp.connect('192.168.1.188',port,timeout) # 连接FTP服务器 ftp.login('UserName','888888') # 登录 p

python ftplib.FTP 获取当前路径下所有目录

FTP 模块里有一个dir函数,可以打印出当前路径下所有文件,但是这个函数没有返回值,只是打印出来. 还有一个nlst函数,可以返回一个文件名的列表,但是只有文件名,没有详细信息,无法判断是否是目录. 目前我只有两个笨办法,一个继承FTP类,自己实现一个getSubdir()方法,可以直接copy  nlst()函数的源码,把cmd的字符串替换成"LIST",再加上一个判断语句. 另外就是自己写一个类,包含一个list成员和一个getSubdir方法,方法中将每个文件append到li

《Python核心编程》 第3版 中文版pdf

下载地址:网盘下载 内容简介 编辑 Python是一种功能十分强大的面向对象编程语言,可以用于编写独立程序.快速脚本和复杂应用的原型.作为一种开源软件,Python可以自由获取,而且非常易学易用.本书是Python语言的经典入门读本,由两名顶尖的Python技术专家兼培训专家联手撰写,涵盖了该语言的所有核心内容.所有练习的解答都可在书后找到. 本书描述了Python程序的基本构件:类型.操作符.语句.函数.模块.类以及异常和介绍了更多高级主题,包括复杂的实例.无论是用于编写简单的脚本,还是复杂的

python核心编程--笔记

python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后

《Python核心编程(第二版)》pdf

下载地址:网盘下载 内容简介  · · · · · · 本书是Python开发者的完全指南--针对 python 2.5全面升级 ·学习专业的Python风格.最佳实践和好的编程习惯: ·加强对Python对象.内存模型和Python面向对象特性的深入理解: ·构建更有效的Web.CGI.互联网.网络和其他客户端/服务器架构应用程序及软件: ·学习如何使用Python中的Tkinter和其他工具来开发自己的GUI应用程序及软件: ·通过用C等语言编写扩展来提升Python应用程序的性能,或者通过

17 网络客户端编程 - 《Python 核心编程》

?? 引言 ?? 文件传输 ?? 文件传输协议(FTP) ?? 网络新闻.Usenet, 和新闻组 ?? 网络新闻传输协议(NNTP) ?? 电子邮件 ?? 简单邮件传输协议(SMTP) ?? 邮局协议 3(POP3) ?? 相关模块 17.1 什么是因特网客户端?    三个因特网协议——FTP, NNTP 和POP3 客户端/服务器模型 17.2 文件传输 文件传输因特网协议 因特网中最流行的事情就是文件的交换.文件交换无处不在. 文件传输协议(FTP) Unix-to-Unix 复制协议(

用ftplib爆破FTP口令

#coding:utf-8 #author:jwong import ftplib def bruteLogin(hostname,passwordFile): with open(passwordFile,'r') as f: for line in f.readlines(): username = line.split(':')[0] password = line.split(':')[1].strip('\r').strip('\n') print "[+] Trying:"

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和

Python下使用ftplib上传文件到ftp上

生产情况:tomcat下业务log备份,目录分多级,然后对应目录格式放到ftp上:所以,结构上 我就是一级一级目录进行判断(因为我没有找到在ftp一次判断其子目录是否存在),还有一个low点就是我没有找到怎样一次性的调用ftp的login因为现在每次判断都需要登录一下,最终功能是实现了:想着先贴出来 #!/usr/local/bin/python3.5 ###Description: 上传业务log到FTP199 ###Author: Tonny.Deng ###DateTime: 2016-1