Python实现FTP上传文件或文件夹实例(递归)
作者:xudacheng06 时间:2021-11-21 06:05:30
本文实例讲述了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,ftp,上传,文件
0
投稿
猜你喜欢
ASP中实现分页显示的七种方法
2007-09-20 13:19:00
CI框架整合smarty步骤详解
2023-11-14 11:18:11
FileUpload上传图片预览不变形
2010-08-05 21:25:00
tensorflow如何继续训练之前保存的模型实例
2023-05-22 22:54:57
Pytorch搭建简单的卷积神经网络(CNN)实现MNIST数据集分类任务
2021-04-24 02:25:16
关于python中逆序的三位数
2021-08-09 05:17:28
ASP中使用SQL语句教程
2008-09-03 12:17:00
python中通过selenium简单操作及元素定位知识点总结
2021-07-18 15:34:37
python条件语句和while循环语句
2023-08-31 06:17:56
最简洁的asp多重查询的解决方案
2011-04-15 10:50:00
Django模板继承与模板的导入实例详解
2023-04-03 14:41:28
asp修改文件和文件夹的名字的代码
2011-04-11 11:04:00
Python数值求解微分方程方法(欧拉法,隐式欧拉)
2023-06-29 10:45:29
页面表达常用方式
2010-05-27 12:42:00
Python利用Selenium实现网站自动签到功能
2021-04-22 18:20:02
Codeigniter发送邮件的方法
2023-11-15 05:08:25
如何提升JavaScript的运行速度(DOM篇)
2010-05-17 13:32:00
String 的扩展方法
2008-05-12 22:36:00
django admin 根据choice字段选择的不同来显示不同的页面方式
2022-04-26 06:39:10
python 如何对Series中的每一个数据做运算
2023-11-19 23:33:07