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

首頁 > 編程 > Python > 正文

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

2019-11-02 14:11:14
字體:
來源:轉載
供稿:網友

在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.總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连州市| 色达县| 汤阴县| 佛教| 色达县| 鸡西市| 汉阴县| 邹平县| 且末县| 金川县| 蕲春县| 留坝县| 陕西省| 绥芬河市| 大石桥市| 靖安县| 碌曲县| 开鲁县| 桦南县| 万州区| 新疆| 津市市| 大埔区| 贵南县| 昌邑市| 延庆县| 循化| 舒城县| 金昌市| 天峻县| 亚东县| 湛江市| 彭州市| 扎兰屯市| 河东区| 武鸣县| 上杭县| 遂昌县| 沽源县| 澄江县| 阿拉善右旗|