时间:2021-05-22
本文实例为大家分享了python实现FTP循环上传文件的具体代码,供大家参考,具体内容如下
测试过程中,有时会用到FTP的数据流,或者需要使用FTP反复上传文件,所以写了一个FTP循环上传文件的python代码。
代码如下:
#coding=utf-8import sysimport osfrom ftplib import FTPfrom time import sleep_XFER_FILE = 'FILE'_XFER_DIR = 'DIR'class Transmitter(object): # 注意:递归上传本地文件或dirs到ftp服务器 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('### 连接FTP服务器: %s ...' % self.ip) self.ftp.connect(self.ip, self.port, self.timeout) self.ftp.login(self.uname, self.pwd) def clearEnv(self): if self.ftp: self.ftp.close() print('### 断开FTP服务器: %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('目录存在 %s' % file) self.uploadDir(src, file) self.ftp.cwd('..') def uploadFile(self, localpath, remotepath='./'): if not os.path.isfile(localpath): return print('+++ 上传 %s to %s:%s' % (localpath, self.ip, remotepath)) self.ftp.storbinary('STOR ' + remotepath, open(localpath, 'rb')) sleep(0.5) try: self.ftp.delete(remotepath) except: pass # del file when uploaded this file # os.remove(localpath) # sleep(1) 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:\Users\Administrator\Downloads\FTP\smp' transmitter = Transmitter() transmitter.setFtpParams('10.44.0.2', 'admin', '123123') while True: transmitter.upload(srcDir) sleep(4)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python基于FTP模块实现ftp文件上传操作。分享给大家供大家参考,具体如下:#!/usr/bin/python#-*-coding:utf-
本文实例讲述了python实现的简单FTP上传下载文件的方法。分享给大家供大家参考。具体如下:python本身自带一个FTP模块,可以实现上传下载的函数功能。#
本文实例讲述了Python实现FTP上传文件或文件夹实例。分享给大家供大家参考。具体如下:importsysimportosimportjsonfromftpl
一、Socketserver实现FTP,文件上传、下载 目录结构 1、socketserver实现ftp文件上传下载,可以同时多用户登录、上传、下载
本文实例讲述了python实现支持目录FTP上传下载文件的方法。分享给大家供大家参考。具体如下:该程序支持ftp上传下载文件和目录、适用于windows和lin