欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現FTP循環(huán)上傳文件

 更新時間:2020年03月20日 09:33:52   作者:阿鵬2019  
這篇文章主要為大家詳細介紹了python實現FTP循環(huán)上傳文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現FTP循環(huán)上傳文件的具體代碼,供大家參考,具體內容如下

測試過程中,有時會用到FTP的數據流,或者需要使用FTP反復上傳文件,所以寫了一個FTP循環(huán)上傳文件的python代碼。

代碼如下:

#coding=utf-8

import sys
import os
from ftplib import FTP
from 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)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Object arrays cannot be loaded when allow_pickle=False的問題

    Object arrays cannot be loaded when

    這篇文章主要介紹了Object arrays cannot be loaded when allow_pickle=False,本文給大家分享問題解決思路,需要的朋友可以參考下
    2022-11-11
  • 解決Python安裝后pip不能用的問題

    解決Python安裝后pip不能用的問題

    今天小編就為大家分享一篇解決Python安裝后pip不能用的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python 多進程、多線程效率對比

    Python 多進程、多線程效率對比

    這篇文章主要介紹了Python 多進程、多線程的效率對比,幫助大家選擇適合的技術,感興趣的朋友可以了解下
    2020-11-11
  • Python技法之簡單遞歸下降Parser的實現方法

    Python技法之簡單遞歸下降Parser的實現方法

    遞歸下降解析器可以用來實現非常復雜的解析,下面這篇文章主要給大家介紹了關于Python技法之簡單遞歸下降Parser的實現方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • 如何用python多次調用exe文件運行不同的結果

    如何用python多次調用exe文件運行不同的結果

    有個C++項目是讀取配置參數文件并打印對應的結果,后來需要多次修改配置文件并運行,于是想到寫個python腳本執(zhí)行這一過程,今天通過本文給大家分享python多次調用exe文件運行不同的結果,感興趣的朋友一起看看吧
    2023-05-05
  • Python本地cache不當使用導致內存泄露的問題分析與解決

    Python本地cache不當使用導致內存泄露的問題分析與解決

    最近在項目開發(fā)中遇到了本地cache不當使用導致的一個內存泄露問題,所以本文主要分析了問題出現的原因已經解決方法,需要的小伙伴可以參考下
    2023-08-08
  • 在Python的Django框架中更新數據庫數據的方法

    在Python的Django框架中更新數據庫數據的方法

    這篇文章主要介紹了在Python的Django框架中更新數據庫數據,對此Django框架中提供了便利的插入和更新方法,需要的朋友可以參考下
    2015-07-07
  • 用Python編寫web API的教程

    用Python編寫web API的教程

    這篇文章主要介紹了用Python編寫web API的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • Django3基于WebSocket實現WebShell的詳細過程

    Django3基于WebSocket實現WebShell的詳細過程

    最近工作中需要開發(fā)前端操作遠程虛擬機的功能,簡稱WebShell,普通應用大部分用的都是wsgi.py配合nginx部署線上服務. 這次主要使用asgi.py,具體實現過程跟隨小編一起看看吧
    2021-08-08
  • Python 讀取位于包中的數據文件

    Python 讀取位于包中的數據文件

    這篇文章主要介紹了Python 如何讀取位于包中的數據文件,幫助大家更好的理解和學習Python,感興趣的朋友可以了解下
    2020-08-08

最新評論