国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python使用sftp實現上傳和下載功能(實例代碼)

2020-02-23 04:16:03
字體:
來源:轉載
供稿:網友

在Python中可以使用paramiko模塊中的sftp登陸遠程主機,實現上傳和下載功能。

1.功能實現

根據輸入參數判斷是文件還是目錄,進行上傳和下載

本地參數local需要與遠程參數remote類型一致,文件以文件名結尾,目錄以/結尾

上傳和下載的本地和遠程目錄需要存在

異常捕獲

2.代碼實現

#!/usr/bin/python# coding=utf-8import paramikoimport osdef sftp_upload(host,port,username,password,local,remote):  sf = paramiko.Transport((host,port))  sf.connect(username = username,password = password)  sftp = paramiko.SFTPClient.from_transport(sf)  try:    if os.path.isdir(local):#判斷本地參數是目錄還是文件      for f in os.listdir(local):#遍歷本地目錄        sftp.put(os.path.join(local+f),os.path.join(remote+f))#上傳目錄中的文件    else:      sftp.put(local,remote)#上傳文件  except Exception,e:    print('upload exception:',e)  sf.close()def sftp_download(host,port,username,password,local,remote):  sf = paramiko.Transport((host,port))  sf.connect(username = username,password = password)  sftp = paramiko.SFTPClient.from_transport(sf)  try:    if os.path.isdir(local):#判斷本地參數是目錄還是文件      for f in sftp.listdir(remote):#遍歷遠程目錄         sftp.get(os.path.join(remote+f),os.path.join(local+f))#下載目錄中文件    else:      sftp.get(remote,local)#下載文件  except Exception,e:    print('download exception:',e)  sf.close()if __name__ == '__main__':  host = '192.168.1.2'#主機  port = 22 #端口  username = 'root' #用戶名  password = '123456' #密碼  local = 'F://sftptest//'#本地文件或目錄,與遠程一致,當前為windows目錄格式,window目錄中間需要使用雙斜線  remote = '/opt/tianpy5/python/test/'#遠程文件或目錄,與本地一致,當前為linux目錄格式  sftp_upload(host,port,username,password,local,remote)#上傳  #sftp_download(host,port,username,password,local,remote)#下載

3.總結

以上代碼實現了文件和目錄的上傳和下載,可以單獨上傳和下載文件,也可以批量上傳和下載目錄中的文件,基本實現了所要的功能,但是針對目錄不存在的情況,以及上傳和下載到多臺主機上的情況,還有待完善。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冷水江市| 海阳市| 固原市| 石嘴山市| 会同县| 吉水县| 德令哈市| 若尔盖县| 汉寿县| 林芝县| 忻州市| 庆云县| 铜梁县| 神木县| 蒲城县| 临沧市| 京山县| 太谷县| 甘谷县| 南木林县| 兰州市| 凤城市| 长宁县| 阿巴嘎旗| 东光县| 罗定市| 桦南县| 东方市| 车致| 盘锦市| 黑山县| 鄂尔多斯市| 安乡县| 河曲县| 莎车县| 工布江达县| 木兰县| 简阳市| 陕西省| 页游| 兴隆县|