全网整合营销服务商

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

免费咨询热线: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 


相关文章: 建站之星如何修改网站生成路径?  如何使用Golang table-driven基准测试_多组数据测量函数效率  ,如何利用word制作宣传手册?  PHP正则匹配日期和时间(时间戳转换)的实例代码  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何在云服务器上快速搭建个人网站?  如何破解联通资金短缺导致的基站建设难题?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  网站制作公司排行榜,四大门户网站排名?  建站之星后台管理系统如何操作?  建站之星备案是否影响网站上线时间?  C#如何在一个XML文件中查找并替换文本内容  如何在阿里云通过域名搭建网站?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  如何在Golang中引入测试模块_Golang测试包导入与使用实践  香港服务器建站指南:免备案优势与SEO优化技巧全解析  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  如何在阿里云域名上完成建站全流程?  如何选择PHP开源工具快速搭建网站?  建站之星导航菜单设置与功能模块配置全攻略  建站之星IIS配置教程:代码生成技巧与站点搭建指南  小建面朝正北,A点实际方位是否存在偏差?  如何通过万网虚拟主机快速搭建网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何基于云服务器快速搭建网站及云盘系统?  如何配置支付宝与微信支付功能?  建站主机如何选?性能与价格怎样平衡?  如何用美橙互联一键搭建多站合一网站?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何确保FTP站点访问权限与数据传输安全?  已有域名能否直接搭建网站?  江苏网站制作公司有哪些,江苏书法考级官方网站?  建站之星图片链接生成指南:自助建站与智能设计教程  c++ stringstream用法详解_c++字符串与数字转换利器  如何用狗爹虚拟主机快速搭建网站?  建站之星微信建站一键生成小程序+多端营销系统  建站之星官网登录失败?如何快速解决?  电商平台网站制作流程,电商网站如何制作?  h5在线制作网站电脑版下载,h5网页制作软件?  如何通过WDCP绑定主域名及创建子域名站点?  黑客入侵网站服务器的常见手法有哪些?  长沙做网站要多少钱,长沙国安网络怎么样?  宝塔Windows建站如何避免显示默认IIS页面?  如何通过二级域名建站提升品牌影响力?  高防服务器租用如何选择配置与防御等级? 

您的项目需求

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