Python实现FTP上传文件或文件夹实例(递归)
2017-01-16 16:15
1066 查看
本文实例讲述了Python实现FTP上传文件或文件夹实例。分享给大家供大家参考。具体如下:
import sys import os import json from ftplib import FTP _XFER_FILE = 'FILE' _XFER_DIR = 'DIR' class Xfer(object): ''''' @note: upload local file or dirs recursively to ftp server ''' def __init__(self): self.ftp = None def __del__(self): pass def setFtpParams(self, ip, uname, pwd, port = 21, timeout = 60): self.ip = ip self.uname = uname self.pwd = pwd self.port = port self.timeout = timeout def initEnv(self): if self.ftp is None: self.ftp = FTP() print '### connect ftp server: %s ...'%self.ip self.ftp.connect(self.ip, self.port, self.timeout) self.ftp.login(self.uname, self.pwd) print self.ftp.getwelcome() def clearEnv(self): if self.ftp: self.ftp.close() print '### disconnect ftp server: %s!'%self.ip self.ftp = None def uploadDir(self, localdir='./', remotedir='./'): if not os.path.isdir(localdir): return self.ftp.cwd(remotedir) for file in os.listdir(localdir): src = os.path.join(localdir, file) if os.path.isfile(src): self.uploadFile(src, file) elif os.path.isdir(src): try: self.ftp.mkd(file) except: sys.stderr.write('the dir is exists %s'%file) self.uploadDir(src, file) self.ftp.cwd('..') def uploadFile(self, localpath, remotepath='./'): if not os.path.isfile(localpath): return print '+++ upload %s to %s:%s'%(localpath, self.ip, remotepath) self.ftp.storbinary('STOR ' + remotepath, open(localpath, 'rb')) def __filetype(self, src): if os.path.isfile(src): index = src.rfind('\\') if index == -1: index = src.rfind('/') return _XFER_FILE, src[index+1:] elif os.path.isdir(src): return _XFER_DIR, '' def upload(self, src): filetype, filename = self.__filetype(src) self.initEnv() if filetype == _XFER_DIR: self.srcDir = src self.uploadDir(self.srcDir) elif filetype == _XFER_FILE: self.uploadFile(src, filename) self.clearEnv() if __name__ == '__main__': srcDir = r"C:\sytst" srcFile = r'C:\sytst\sar.c' xfer = Xfer() xfer.setFtpParams('192.x.x.x', 'jenkins', 'pass') xfer.upload(srcDir) xfer.upload(srcFile)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- Python实现的递归神经网络简单示例
- Python基于递归算法实现的走迷宫问题
- Python利用递归和walk()遍历目录文件的方法示例
- Python递归函数定义与用法示例
- python递归查询菜单并转换成json实例
- Python数据结构之栈、队列的实现代码分享
- Python基于list的append和pop方法实现堆栈与队列功能示例
- 栈和队列数据结构的基本概念及其相关的Python实现
- python实现堆栈与队列的方法
- 浅析python递归函数和河内塔问题
- Python爬虫包 BeautifulSoup 递归抓取实例详解
- Python 递归函数详解及实例
- Python多层嵌套list的递归处理方法(推荐)
- python实现汉诺塔递归算法经典案例
- Python实现递归遍历文件夹并删除文件
- Python递归遍历列表及输出的实现方法
- python递归计算N!的方法
- 讲解Python中的递归函数
- Python通过递归遍历出集合中所有元素的方法
- python 利用栈和队列模拟递归的过程
相关文章推荐
- Python实现FTP上传文件或文件夹(递归)
- python ftp文件夹文件递归上传推送
- python实现的简单FTP上传下载文件实例
- python实现的简单FTP上传下载文件实例
- python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小
- Python实现递归遍历文件夹并删除文件
- FTP 批量上传文件和文件夹 自动递归
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- Java实现ftp上传文件、文件夹
- FTP上传下载 FTP操作类 FTPHelper 异步上传 递归创建文件文件夹
- Python实现递归遍历文件夹并删除文件
- Java实现ftp上传文件、文件夹
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法
- Java实现FTP文件的上传和下载功能的实例代码
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- Java实现ftp上传文件、文件夹
- python实现的ftp自动上传下载程序(支持目录递归操作)----转
- python实现支持目录FTP上传下载文件的方法
- FTP实现文件/文件夹的上传或下载