源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python实现ftp客户端示例分享

  • 时间:2021-06-22 21:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python实现ftp客户端示例分享
[u]复制代码[/u] 代码如下:
#!/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.1\n'))     if host == '':host = '127.0.0.1'     port = raw_input('port,21\n')     if not(port.isdigit()):port =21     name = str(raw_input('name,anonymous\n'))     if name=='':name='anonymous'     passwd = str(raw_input('password\n'))     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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部