国产探花免费观看_亚洲丰满少妇自慰呻吟_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.總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 揭西县| 屏东市| 彭山县| 施甸县| 阳原县| 西畴县| 大丰市| 双流县| 武胜县| 沁源县| 瑞昌市| 永昌县| 绥宁县| 道孚县| 沂水县| 莒南县| 新巴尔虎右旗| 香河县| 旬阳县| 江都市| 云林县| 城固县| 安吉县| 肇州县| 大足县| 汨罗市| 新竹县| 包头市| 闽侯县| 兰考县| 年辖:市辖区| 东至县| 赤峰市| 广宁县| 白玉县| 鄂伦春自治旗| 环江| 吴川市| 哈密市| 利辛县| 沂水县|