python和ftp
Posted bayuqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python和ftp相关的知识,希望对你有一定的参考价值。
1 ftp(文件传输协议)工作流程
1 客户端连接远程主机上的FTP服务器
2 客户端输入用户名和密码(或‘anomymous’ 和电子邮件地址)
3 客户端进行各种文件传输和信息查询操作
4 客户端从远程FTP服务器直接退出,结束传输
ftp两种模式:主动和被动,只有主动模式下服务器才使用数据端口,20号。被动模式下,服务器只是高数客户端随机的端口号,客户端必须主动建立连接,21号。
2 python和FTP
导入ftplib模块,实例化一个ftplib.FTP类对象,所有的FTP操作(如登录、传输文件和注销的)都要这个对象完成
ftplib.FTP类的方法,只介绍常用的几个
login(user=‘anonymous‘,passwd=",act=“) #登录服务器 ,所有的参数都可选
pwd #获取当前目录
cwd(path) #把当前工作目录设置path所示的路径(如path=/ftp/byq/example)
dir([path[,…[,cb]])# 显示path目录中的内容,可选的参数cb是一个回调函数,传递给retrlines()方法
retrbinary(cmd,cb[,8kb])
# 下载文件,只是处理二进制文件,回调函数cb用于处理每一块(默认大小8kb)的下载的数据
storbinary(cmd,f[,8kb])#处理二进制文件,要给定一个对象f,上传块bs大小默认8kb
3 客户端FTP实例
1 import ftplib 2 import socket 3 import os 4 5 6 host = ‘ftp,website‘ 7 dirn = ‘filedir‘ 8 files = ‘filename‘ 9 10 11 def main(): 12 try: 13 f = ftplib.FTP(host) 14 except(socket.error, socket.gaierror) as e: 15 print(‘error:cannot reach "%S"‘ % host) 16 return 17 print(‘***Connected to hos "%s"‘ % host) 18 19 try: 20 f.login() 21 except ftplib.error_perm: 22 print(‘error:cannot login anonymously‘) 23 f.quit() 24 return 25 print(‘***logged in as "anonymous"‘) 26 27 try: 28 f.cwd(dirn) 29 except ftplib.error_perm: 30 print(‘error:cannot cd to "%s"‘ % dirn) 31 f.quit() 32 return 33 print(‘***changed to "%s" folder‘ % dirn) 34 35 try: 36 f.retrbinary(‘retr %s‘ % files, open(files, ‘wb‘).write) 37 except ftplib.error_perm: 38 print(‘error:cannot read files "%s"‘ % files) 39 os.unlink(files) 40 else: 41 print(‘***downloaded "%s" to cmd‘ % files) 42 f.quit() 43 44 if __name__ == ‘__main__‘: # 运行独立脚本的惯用方法 45 main()
以上是关于python和ftp的主要内容,如果未能解决你的问题,请参考以下文章