设为首页 收藏本站
查看: 795|回复: 0

[经验分享] python实现ftp的基本功能

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-6 07:25:00 | 显示全部楼层 |阅读模式
这篇文章主要介绍了Python使用ftplib实现简易FTP客户端的方法,实例分析了ftplib模块相关设置与使用技巧,需要的朋友可以参考下


本文实例讲述了Python使用ftplib实现简易FTP客户端的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python
#-*- coding:utf-8 -*-
fromftplib importFTP   #加载ftp模块
ftp=FTP()         #设置变量
ftp.set_debuglevel(2)   #打开调试级别2,显示详细信息
ftp.connect("IP","port") #连接的ftp sever和端口
ftp.login("user","password")#连接的用户名,密码
printftp.getwelcome()   #打印出欢迎信息
ftp.cmd("xxx/xxx")    #更改远程目录
bufsize=1024       #设置的缓冲区大小
filename="filename.txt"  #需要下载的文件
file_handle=open(filename,"wb").write
#以写模式在本地打开文件
ftp.retrbinaly("RETR filename.txt",file_handle,bufsize)
#接收服务器上文件并写入本地文件
ftp.set_debuglevel(0)   #关闭调试模式
ftp.quit         #退出ftp
ftp.dir()         #显示目录下文件信息
ftp.mkd(pathname)     #新建远程目录
ftp.pwd()         #返回当前所在位置
ftp.rmd(dirname)     #删除远程目录
ftp.delete(filename)   #删除远程文件
ftp.rename(fromname, toname)#将fromname修改名称为toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize)#上传目标文件






?

一个FTP完整实例:


?
#coding:utf-8
fromctypes import*
importos
importsys
importftplib
classmyFtp:
ftp=ftplib.FTP()
bIsDir=False
path=""
def__init__(self, host, port='21'):
self.ftp.set_debuglevel(2)#打开调试级别2,显示详细信息
#self.ftp.set_pasv(0)  #0主动模式 1 #被动模式
self.ftp.connect( host, port )
defLogin(self, user, passwd ):
self.ftp.login( user, passwd )
printself.ftp.welcome
defDownLoadFile( self, LocalFile, RemoteFile ):
file_handler=open( LocalFile, 'wb')
self.ftp.retrbinary("RETR %s" %( RemoteFile ), file_handler.write )  
file_handler.close()
returnTrue
defUpLoadFile( self, LocalFile, RemoteFile ):
ifos.path.isfile( LocalFile ) ==False:
returnFalse
file_handler=open( LocalFile, "rb")
self.ftp.storbinary('STOR %s'%RemoteFile, file_handler, 4096)
file_handler.close()
returnTrue
defUpLoadFileTree( self, LocalDir, RemoteDir ):
ifos.path.isdir( LocalDir ) ==False:
returnFalse
LocalNames=os.listdir( LocalDir )
printRemoteDir
self.ftp.cwd( RemoteDir )
forLocal inLocalNames:
src=os.path.join( LocalDir, Local)
ifos.path.isdir( src ):
self.UpLoadFileTree( src, Local )
else:
self.UpLoadFile( src, Local )
self.ftp.cwd("..")
return
defDownLoadFileTree( self, LocalDir, RemoteDir ):
ifos.path.isdir( LocalDir ) ==False:
os.makedirs( LocalDir )
self.ftp.cwd( RemoteDir )
RemoteNames=self.ftp.nlst()
forfile in RemoteNames:
Local=os.path.join( LocalDir, file)
ifself.isDir(file):
self.DownLoadFileTree( Local, file)         
else:
self.DownLoadFile( Local, file)
self.ftp.cwd("..")
return
defshow( self,list):
result=list.lower().split(" " )
ifself.pathinresult and&quot;<dir>&quot; in result:
self.bIsDir=True
defisDir( self, path ):
self.bIsDir=False
self.path=path
#this ues callback function ,that will change bIsDir value
self.ftp.retrlines('LIST',self.show )
returnself.bIsDir
defclose( self):
self.ftp.quit()
ftp=myFtp('********')
ftp.Login('*****','*****')
#ftp.DownLoadFile('TEST.TXT', 'others\\runtime.log')#ok
#ftp.UpLoadFile('runtime.log', 'others\\runtime.log')#ok
#ftp.DownLoadFileTree('bcd', 'others\\abc')#ok
#ftp.UpLoadFileTree('aaa',&quot;others\\&quot; )
ftp.close()
print&quot;ok!&quot;




希望本文所述对大家的Python程序设计有所帮助。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135596-1-1.html 上篇帖子: debian下ftp服务器配置实例 下篇帖子: linux下pureftpd的安装与配置(FTP服务器)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表