|
复制代码 代码如下: #!/usr/bin/python #coding:utf-8 #write:JACK #info:ftp example import ftplib,socket,os from time import sleep,ctime
def LoginFtp(self): ftps = ftplib.FTP() ftps.connect(self.host,self.port) ftps.login(self.name,self.passwd)
#未进行判断地址输入是否为ip或者域名;可以进行判断是否包含<或者实体符号以及';其他可以忽略 class LoFtp(object): 'this is ftp class example' host = str(raw_input('host,127.0.0.1n')) if host == '':host = '127.0.0.1'
port = raw_input('port,21n') if not(port.isdigit()):port =21
name = str(raw_input('name,anonymousn')) if name=='':name='anonymous'
passwd = str(raw_input('passwordn')) if passwd =='':passwd=''
def ZqFtp(self,host,name,passwd,port): self.host = host self.name = name self.passwd = passwd self.port = port
def LoginFtp(self): self.ftps = ftplib.FTP() self.ftps.connect(self.host,self.port) self.ftps.login(self.name,self.passwd) self.buffer = 2048 #设置缓存大小
def ShowFtp(self): self.LoginFtp() self.ftps.dir('/') dirs = str(raw_input('PLEASE INPUT DIR!n')) print self.ftps.dir(dirs)
def UpFtp(self): 'uploads files' self.LoginFtp() self.ftps.set_debuglevel(2) filename = str(raw_input('PLEASE FILE NAME!n')) file_open=open(filename,'rb') #打开文件 可读即可 self.ftps.storbinary('STOR %s'% os.path.basename(filename),file_open,self.buffer) # 上传文件 self.ftps.set_debuglevel(0) file_open.close()
def DelFtp(self): 'Delete Files' self.LoginFtp() filename=str(raw_input('PLEASE DELETE FILE NAME!n')) self.ftps.delete(filename)
def RemoveFtp(self): 'Remove File' self.LoginFtp() self.ftps.set_debuglevel(2)#调试级别,0无任何信息提示 oldfile=str(raw_input('PLEASE OLD FILE NAME!n')) newfile=str(raw_input('PLEASE NEW FILE NAME!n')) self.ftps.rename(oldfile,newfile) self.ftps.set_debuglevel(0)
def DownFtp(self): 'Download File' self.LoginFtp() self.ftps.set_debuglevel(2) filename=str(raw_input('PLEASE FILE NAME!n')) file_down = open(filename,'wb').write self.ftps.retrbinary('STOP %s' % os.path.basename(filename),file_down,self.buffer) self.ftps.set_debuglevel(0) file_down.close()
a = LoFtp() print a.ShowFtp()
while True: helpn= str(raw_input('Whether to continue to view or exit immediately!(y/n/q)n')) if (helpn=='y')or(helpn=='Y'): dirs = str(raw_input('PLEASE INPUT DIR!n')) a.ftps.dir(dirs) elif (helpn=='q')or (helpn=='Q'): exit() else: break
while True: print '上传请选择----1' print '下载请选择----2' print '修改FTP文件名称----3' num = int(raw_input('PLEASE INPUT NUMBER![exit:5]n'))
if num ==1: upf = a.UpFtp() print 'Upfile ok!' elif num ==2: dof = a.DownFtp() print 'Download file ok!' elif num ==3: ref = a.RemoveFtp() print 'Remove file ok!' else: a.ftps.quit() print 'Bingo!' break
#login(user='anonymous',passwd='',acct='') 登录到FTP服务器,所有的参数都是可选的 #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[,bs=8192]) 与storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象f,上传块大小bs 默认为8Kbs=8192]) #rename(old,new) 把远程文件old 改名为new #delete(path) 删除位于path 的远程文件 #mkd(directory) 创建远程目录 #每个需要输入的地方,需要进行排查检错。仅仅这个功能太小了。不过根据实际情况更改,放在bt里边当个小工具即可 #有点烂,没有做任何try
您可能感兴趣的文章:- Python中的FTP通信模块ftplib的用法整理
- Python使用ftplib实现简易FTP客户端的方法
- python实现简单ftp客户端的方法
- python3实现ftp服务功能(客户端)
- Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
- python连接远程ftp服务器并列出目录下文件的方法
- 400多行Python代码实现了一个FTP服务器
- python实现FTP服务器服务的方法
- python创建一个最简单http webserver服务器的方法
- python实现从ftp服务器下载文件的方法
- Python实现的FTP通信客户端与服务器端功能示例
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|