ftplib是 Python的内置的一个标准模块,它提供了极强大的对FTP服务器的操做,经过它咱们能够链接并操做FTP服务端,开始练习:php
1、导入模块并进行链接python
>>> from ftplib import FTP >>> ftp = FTP(‘ftp.yabogo.com’) >>> ftp.login(‘yourloginname’,'password’)
FTP登陆成功服务器
链接到FTP可还有以下形式:ui
一、实例化并直接链接,ftp=FTP(host=”, user=”, passwd=”, acct=”, timeout=”)url
二、先实例ftp=FTP(), 再使用 connect(host=”, port=0, timeout=-999)链接,最后login(user=”, passwd=”)spa
2、查看目录文件或更改目录debug
>>> ftp.retrlines(‘LIST’)
一、retrlines(cmd)是以文本形式查看当前目录文件,可用cmd:RETR, LIST, NLST, MLSD调试
二、若是要指定查看某个目录的文件列表,能够用dir(dirname) ,dirname是可选参数,默认是当前目录;rest
三、cwd(dirname), 更改目录! Change to a directory.code
3、查看文件的大小
>>> ftp.size(‘yabogo_logo.gif’) 2452
4、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.
5、退出关闭,并退出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()