一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實現FTP上傳文件或文件夾實例(遞歸)

Python實現FTP上傳文件或文件夾實例(遞歸)

2020-09-17 14:35xudacheng06 Python

本篇文章主要介紹了Python實現FTP上傳文件或文件夾實例(遞歸),具有一定的參考價值,有興趣的可以了解一下。

本文實例講述了Python實現FTP上傳文件或文件夾實例。分享給大家供大家參考。具體如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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)

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产性色视频 | 日韩在线免费看 | 操女b | 日韩免费视频播播 | 日本不卡视频免费的 | 精品一区二区三区五区六区七区 | 99久久无色码中文字幕 | 国产欧美日韩图片一区二区 | jm漫天堂破解版 | 91caoporm在线进入 | 91免费破解版 | 国产精品免费看香蕉 | 欧美人禽杂交在线视频 | 国产资源在线视频 | 精品久久久噜噜噜久久7 | 九九99靖品 | 亚洲国产精久久久久久久 | 日韩专区在线观看 | 亚洲天天做夜夜做天天欢 | xx顶级欧美熟妞xxhd | 铁牛tv 在线观看 | 日本aaaa级| 久久精品无码人妻无码AV蜜臀 | 国产一卡2卡3卡四卡高清 | 亚洲天堂网在线观看视频 | 美女啪啪国产 | 经典WC女厕所里TV | 欧美日韩亚洲国内综合网香蕉 | 日本色频 | 九色PORNY真实丨国产免费 | 高清国产精品久久 | 国产欧美日韩专区 | 香蕉视频久久 | 亚洲 欧美 在线观看 | 麻豆最新 | 久久综久久美利坚合众国 | 操熟美女又肥又嫩的骚屁股 | 欧美人体高清在线观看ggogo | 亚洲AV无码乱码在线观看浪潮 | 爱色v | 人人爽人人香蕉 |