婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python使用sftp實現傳文件夾和文件

Python使用sftp實現傳文件夾和文件

熱門標簽:南京銷售外呼系統軟件 蓋州市地圖標注 地圖標注微信發送位置不顯示 315電話機器人廣告 地圖制圖標注位置改變是移位嗎 上海機器人外呼系統哪家好 地圖標注的意義點 房產電銷外呼系統 浙江電銷卡外呼系統好用嗎

利用python的sftp實現文件上傳,可以是文件,也可以是文件夾。

版本Python2.7.13 應該不用pip安裝更多的插件,都是自帶的

不多說 上代碼

# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import paramiko
import os

_XFER_FILE = 'FILE'
_XFER_DIR  = 'DIR'

class MainWindow(object):
    # 構造方法
    def __init__(self, arg):
        # 超類調用
        super(MainWindow, self).__init__()

        # 賦值參數[字典]
        # 參數格式 arg = {'ip':'填ip','user':'用戶名','password':'密碼','port':22}
        self.arg = arg
        # 賦值參數[FTP]
        self.sftp = None

        # 調試日志
        print self.arg


    # 啟動程序
    def startup(self):
        # 連接FTP
        if self.sftp != None:
            print u'您已經成功連接了'
        tmpstr = u'開始連接...用戶名:'+self.arg['user']+u'  密碼:'+self.arg['password']+' IP:'+self.arg['ip']+u' 端口:'+str(self.arg['port'])
        print tmpstr
        try:
            transport = paramiko.Transport((self.arg['ip'], self.arg['port']))
            transport.connect(username=self.arg['user'], password=self.arg['password'])
            self.sftp = paramiko.SFTPClient.from_transport(transport)
            print (u'連接成功 '+self.arg['ip'])
        except Exception as e:
            print u'連接失敗:'+str(e)

    # 關閉程序
    def shutdown(self):
        # 關閉FTP
        if self.sftp:
            self.sftp.close() 
            print '### disconnect sftp server: %s!'%self.arg['ip']
            self.sftp = None 

    # 處理上傳
    def upload(self, source, target, replace):
        ### 操作數據
        # 來源路徑
        source = source.replace('\\', '/')
        # 目標路徑
        target = target.replace('\\', '/')


        ### 驗證數據
        if not os.path.exists(source):
            print u'來源資源不存在,請檢查:' + source
            return


        ### 格式數據
        # 格式化目標路徑
        self.__makePath(target)


        ### 處理數據
        # 文件媒體數據(文件類型, 文件名稱)
        filetype, filename = self.__filetype(source)
        # 判斷文件類型
        if filetype == _XFER_DIR:
            # 1.目錄 
            self.uploadDir(source, target, replace)
        elif filetype == _XFER_FILE:
            # 2.文件 
            self.uploadFile(source, filename, replace)


    # 傳送目錄
    def uploadDir(self, source, target, replace):
        ### 驗證數據
        # 判斷目錄存在
        if not os.path.isdir(source):   
            print u'這個函數是用來傳送本地目錄的'
            return

        ### 處理數據
        # 遍歷目錄內容,上傳資源
        for file in os.listdir(source):
            # 資源路徑
            filepath = os.path.join(source, file) 

            # 判斷資源文件類型
            if os.path.isfile(filepath): 
                # 1.文件
                self.uploadFile(filepath, file, replace) 
            elif os.path.isdir(filepath):
                # 2.目錄
                try:
                    self.sftp.chdir(file) 
                except:
                    self.sftp.mkdir(file)
                    self.sftp.chdir(file) 
                self.uploadDir(filepath, file, replace)

        ### 重置數據
        # 返回上一層目錄
        self.sftp.chdir('..') 

    # 傳送文件
    def uploadFile(self, filepath, filename, replace):
        ### 驗證數據
        # 驗證文件類型
        if not os.path.isfile(filepath):
            print u'這個函數是用來傳送單個文件的'
            return
        # 驗證文件存在
        if not os.path.exists(filepath):
            print u'err:本地文件不存在,檢查一下'+filepath
            return
        # 驗證FTP已連接
        if self.sftp == None:
            print u'sftp 還未鏈接'
            return


        ### 處理數據
        # 判斷文件存在是否覆蓋
        if not replace:
            if filename in self.sftp.listdir():
                print u'[*] 這個文件已經存在了,選擇跳過:' + filepath + ' -> ' + self.sftp.getcwd() + '/' + filename
                return
        # 上傳文件
        try:
            self.sftp.put(filepath, filename)
            print u'[+] 上傳成功:' + filepath + ' -> ' + self.sftp.getcwd() + '/' + filename
        except Exception as e:
            print u'[+] 上傳失敗:' + filepath + ' because ' + str(e)


    # 獲得文件媒體數據({文件/目錄, 文件名稱})
    def __filetype(self, source):
        # 判斷文件類型
        if os.path.isfile(source):
            # 1.文件
            index = source.rfind('/')
            return _XFER_FILE, source[index+1:]
        elif os.path.isdir(source):  
            # 2.目錄
            return _XFER_DIR, ''


    # 創建目標路徑
    # 說明: 目標路徑不存在則依次創建路徑目錄
    def __makePath(self, target):
        # 切換根目錄
        self.sftp.chdir('/')

        # 分割目標目錄為目錄單元集合
        data = target.split('/')
        # 進入目標目錄, 目錄不存在則創建
        for item in data:
            try:
                self.sftp.chdir(item) 
                print u'要上傳的目錄已經存在,選擇性進入合并:' + item
            except:
                self.sftp.mkdir(item)
                self.sftp.chdir(item) 
                print u'要上傳的目錄不存在,創建目錄:' + item




if __name__ == '__main__':
    # """
    # 先熟悉一下sftp有哪些用法  sftp.listdir(可以傳參可以為空) 返回當前目錄下清單列表
    # mkdir 創建目錄對應rmdir   sftp.put(本地路徑,遠程要存的文件名) chdir進入子目錄
    # """
    arg = {'ip':'填ip','user':'填用戶名','password':'填密碼','port':22}

    me  = MainWindow(arg)
    me.startup()
    # 要上傳的本地文件夾路徑
    source = r'E:\xampp\backup\mysql\cto'
    # 上傳到哪里 [遠程目錄]
    target = r'/home/www/cto/wp-superdo/backup/db'
    replace = False

    me.upload(source, target, replace)
    me.shutdown()



def main(source, target, replace=False):
    arg = {'ip':填ip,'user':填用戶名,'password':填密碼,'port':22}

    me  = MainWindow(arg)
    me.startup()

    me.upload(source, target, replace)
    me.shutdown()

因為Python2.7對中文的支持不是很好所以如果出現中文錯誤
修改一下 Python27\Lib\site-packages\paramiko\py3compat.py

還有

最后上一下執行結果

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

標簽:臨汾 陽泉 克拉瑪依 赤峰 日照 雙鴨山 金華 貴州

巨人網絡通訊聲明:本文標題《Python使用sftp實現傳文件夾和文件》,本文關鍵詞  Python,使用,sftp,實現,傳,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python使用sftp實現傳文件夾和文件》相關的同類信息!
  • 本頁收集關于Python使用sftp實現傳文件夾和文件的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧洲精品一区二区精品久久久| a在线播放不卡| 亚洲制服欧美中文字幕中文字幕| 欧美成va人片在线观看| 欧美大尺度电影在线| 日韩精品一区二区在线| 精品少妇一区二区三区免费观看| 91精品国产综合久久久久久漫画 | 欧美日韩国产系列| 欧美精品久久久久久久久老牛影院| 欧美在线小视频| 欧美一区二区视频在线观看2022| 337p亚洲精品色噜噜狠狠| 精品三级av在线| 国产日韩欧美不卡| 亚洲日本成人在线观看| 亚洲国产你懂的| 九一九一国产精品| 粉嫩高潮美女一区二区三区| 日本高清成人免费播放| 欧美日韩精品专区| 精品国产乱码久久久久久1区2区| 欧美韩国日本一区| 亚洲午夜影视影院在线观看| 蜜桃久久精品一区二区| 成人国产精品免费网站| 欧美午夜精品一区二区蜜桃| 日韩一区二区影院| 国产精品乱人伦一区二区| 日韩精品每日更新| 国产成人免费9x9x人网站视频| 99国产精品久久| 欧美va在线播放| 一区二区三区欧美久久| 国产综合色产在线精品| 色婷婷av一区二区三区gif| 精品福利在线导航| 亚洲18影院在线观看| 成人涩涩免费视频| 日韩精品一区在线观看| 一区二区三区四区视频精品免费 | 成人免费观看男女羞羞视频| 精品视频1区2区| 国产精品久久久久久久午夜片| 首页国产欧美日韩丝袜| 9i在线看片成人免费| 欧美v日韩v国产v| 亚洲超丰满肉感bbw| 成人国产免费视频| 久久亚洲精精品中文字幕早川悠里| 亚洲精品视频在线看| 国产a区久久久| 7777精品伊人久久久大香线蕉的 | 久久精品国产一区二区三| 色综合久久精品| 欧美韩日一区二区三区| 激情文学综合丁香| 日韩亚洲欧美中文三级| 亚洲午夜私人影院| 一本在线高清不卡dvd| 国产精品视频你懂的| 韩国精品在线观看| 精品成人免费观看| 男女视频一区二区| 欧美一区二区三区电影| 日本特黄久久久高潮| 欧美精品一二三| 亚洲午夜私人影院| 欧美影视一区在线| 亚洲一区二区精品久久av| 色婷婷激情综合| 亚洲一区在线播放| 欧美猛男gaygay网站| 香蕉影视欧美成人| 91精品免费观看| 免费成人小视频| 精品国产三级a在线观看| 黄色精品一二区| 久久这里只有精品视频网| 国产综合色精品一区二区三区| 久久综合色8888| 成人动漫精品一区二区| 亚洲视频狠狠干| 欧日韩精品视频| 欧美aaa在线| 日韩免费视频一区| 国产电影一区在线| 亚洲美女一区二区三区| 在线观看一区日韩| 三级一区在线视频先锋| 久久亚洲精精品中文字幕早川悠里| 国产美女娇喘av呻吟久久| 国产精品久久久久一区二区三区共| jlzzjlzz欧美大全| 亚洲高清视频中文字幕| 精品黑人一区二区三区久久 | 日韩激情在线观看| 久久欧美一区二区| 色综合久久88色综合天天6| 午夜精品视频在线观看| 久久亚洲欧美国产精品乐播 | 国产不卡免费视频| 亚洲黄色小说网站| 欧美v日韩v国产v| 99久久久久免费精品国产| 日本欧美大码aⅴ在线播放| 久久久久国产精品麻豆ai换脸 | 2023国产精品视频| 91啪亚洲精品| 韩国一区二区三区| 亚洲最快最全在线视频| 精品入口麻豆88视频| 欧美性猛交xxxx黑人交| 国产精品主播直播| 日韩主播视频在线| 亚洲色图清纯唯美| 久久精品欧美一区二区三区不卡| 91国模大尺度私拍在线视频| 精品中文字幕一区二区| 夜夜亚洲天天久久| 国产精品久久久久一区二区三区共| 91精品福利在线一区二区三区| 波多野结衣91| 国产精品一区二区x88av| 亚洲成人激情av| 亚洲裸体xxx| 国产欧美视频一区二区三区| 欧美妇女性影城| 欧美日韩中字一区| 91在线精品秘密一区二区| 国产福利91精品一区二区三区| 久久国产精品第一页| 五月天丁香久久| 一级特黄大欧美久久久| 亚洲裸体xxx| 亚洲欧美日本在线| 亚洲欧美日韩在线| 一区视频在线播放| 国产精品久久久99| 日本一区二区电影| 国产精品无码永久免费888| 国产三级三级三级精品8ⅰ区| 欧美一级二级在线观看| 91精品免费在线| 欧美一区二区大片| 日韩免费在线观看| 精品成人一区二区| 久久欧美一区二区| 久久精子c满五个校花| 久久久久久电影| 国产精品久久看| 亚洲美女一区二区三区| 亚洲制服丝袜av| 亚洲国产美国国产综合一区二区| 亚洲高清在线精品| 玖玖九九国产精品| 国产在线精品一区二区夜色| 国产一区二区三区四区五区入口| 国产精品中文有码| 成人福利视频在线| 欧美日韩综合一区| 欧美刺激脚交jootjob| 久久久99精品久久| 亚洲激情一二三区| 美女一区二区视频| 国产999精品久久久久久| 91视频观看视频| 7777精品伊人久久久大香线蕉经典版下载 | 蜜臀国产一区二区三区在线播放 | 亚洲最新在线观看| 日本欧美韩国一区三区| 国产精品一区二区三区乱码| 波多野结衣亚洲| 91精品黄色片免费大全| 国产欧美1区2区3区| 亚洲一级不卡视频| 国产剧情av麻豆香蕉精品| 91在线国内视频| 欧美一级高清大全免费观看| 国产日本欧美一区二区| 一区二区高清视频在线观看| 久久不见久久见免费视频7| hitomi一区二区三区精品| 欧美乱妇23p| 日本一区二区三区在线不卡| 亚洲成人在线网站| 国产成人高清在线| 欧美日韩综合在线| 国产精品久久久久毛片软件| 午夜精品久久久久久| 成人黄色电影在线| 欧美mv日韩mv亚洲| 一区二区在线观看免费视频播放| 日韩综合一区二区| 日本高清不卡一区| 欧美激情一区二区| 蜜臀av一区二区在线观看| 91热门视频在线观看| 国产免费观看久久| 极品尤物av久久免费看|