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

首頁 > 開發 > Python > 正文

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

2024-09-09 19:02:12
字體:
來源:轉載
供稿:網友

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武陟县| 财经| 永康市| 进贤县| 密山市| 荆州市| 自贡市| 清流县| 望江县| 丰县| 金乡县| 通榆县| 伊宁市| 昌乐县| 台北市| 贵港市| 奉贤区| 大厂| 林芝县| 海宁市| 合水县| 吴桥县| 邳州市| 抚远县| 鄱阳县| 青浦区| 海晏县| 扶沟县| 焦作市| 静安区| 望奎县| 玉溪市| 新昌县| 海丰县| 天门市| 神木县| 罗城| 新和县| 塔城市| 永州市| 杂多县|