全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python实现FTP上传文件或文件夹实例(递归)

本文实例讲述了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上传文件夹  # python实现ftp上传  # ftp上传文件  # python实现FTP循环上传文件  # 详解Python下ftp上传文件linux服务器  # Python ftp上传文件  # Python使用FTP上传文件的实现示例  # 给大家  # 大家多多  # 上传文件  # 讲述了  # ftp  # recursively  # server  # def  # upload  # note  # local  # dirs  # file  # port  # timeout  # initEnv  # setFtpParams  # pass  # ip  # pwd 


相关文章: 学校建站服务器如何选型才能满足性能需求?  如何选择网络建站服务器?高效建站必看指南  黑客如何通过漏洞一步步攻陷网站服务器?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  建站之星2.7模板:企业网站建设与h5定制设计专题  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  建站主机是否等同于虚拟主机?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  制作网站外包平台,自动化接单网站有哪些?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何通过服务器快速搭建网站?完整步骤解析  C++如何编写函数模板?(泛型编程入门)  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何通过免费商城建站系统源码自定义网站主题与功能?    Python文件管理规范_工程实践说明【指导】  建站之星安装失败:服务器环境不兼容?  IOS倒计时设置UIButton标题title的抖动问题  香港服务器选型指南:免备案配置与高效建站方案解析  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何在阿里云完成域名注册与建站?  如何在腾讯云服务器上快速搭建个人网站?  如何选择美橙互联多站合一建站方案?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  济南专业网站制作公司,济南信息工程学校怎么样?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  ,交易猫的商品怎么发布到网站上去?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  在线教育网站制作平台,山西立德教育官网?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  简单实现Android文件上传  安徽网站建设与外贸建站服务专业定制方案  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何在腾讯云服务器快速搭建个人网站?  已有域名和空间如何快速搭建网站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站制作知乎推荐,想做自己的网站用什么工具比较好?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  三星网站视频制作教程下载,三星w23网页如何全屏?  css网站制作参考文献有哪些,易聊怎么注册?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  ,如何利用word制作宣传手册?  婚礼视频制作网站,学习*后期制作的网站有哪些?  招商网站制作流程,网站招商广告语?  如何通过网站建站时间优化SEO与用户体验?  建站上市公司网站建设方案与SEO优化服务定制指南  如何通过PHP快速构建高效问答网站功能?  宝塔建站无法访问?如何排查配置与端口问题?  如何通过虚拟机搭建网站?详细步骤解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。