python上传文件到ftp服务器
来源:互联网 发布:店铺复制软件 编辑:程序博客网 时间:2024/06/06 05:55
__author__ = 'dacxu' __mail__ = 'xudacheng06.com' __date__ = '2013-10-29' __version = 1.0 import sys import os import json import time 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() def file_extension(self, path): return os.path.splitext(path)[1]if __name__ == '__main__': '''srcFile = r'D:\dlc\docs\jQuery1.9.chm' xfer = Xfer() xfer.setFtpParams('172.25.29.68', 'dunchongap', 'dunchong123') xfer.upload(srcFile) ''' directory = '/var/logs/apViewData' '''directory = 'D:\dlc\docs\python''' if os.path.exists(directory): print 'Data directory exists.' else: os.makedirs(directory); while 1: xfer = Xfer() xfer.setFtpParams('121.199.60.212', 'dunchongap', 'dunchong123') for parent,dirnames,filenames in os.walk(directory): for filename in filenames: absoPath = os.path.join(parent,filename) fileSuffix = xfer.file_extension(filename) print fileSuffix if (fileSuffix == '.gz'): print absoPath xfer.upload(absoPath) os.remove(filename) time.sleep(3600)
0 0
- python上传文件到ftp服务器
- 文件上传到FTP服务器
- 用python通过ftp将文件上传到服务器
- java FTP上传文件到服务器
- 批处理FTP上传文件到服务器
- 上传指定文件到ftp服务器上
- VB实现文件上传到FTP服务器
- VC实现上传文件到FTP服务器
- 上传文件到指定的FTP服务器
- vb.net上传文件到FTP服务器
- java上传文件到FTP服务器
- 不通过ftp上传文件到远程服务器
- 将文件上传到FTP服务器
- java将文件上传到ftp服务器
- Java 上传文件到ftp服务器
- java 上传文件到 vsftpd ftp服务器
- JAVA 文件上传到FTP 服务器
- java 上传 下载 文件到FTP服务器
- Redis-Redis实战(散列类型)
- 2016编程心得
- 位图的应用之海量数据查找
- Java Logger(java日志)
- 生成二维码 并展示在ImagView中
- python上传文件到ftp服务器
- CorelDRAW中的版面样式和标签样式该如何运用
- 线段树
- 正交函数(orthogonal functions)
- AutoCAD 2000-14的序列号大全
- CGLib动态代理原理及实现
- c# 第二章 课后习题3
- memcpy函数 & 使用泛型指针交换任何类型数据
- memset函数的作用