基于Python——实现远程下载sftp文件(只下载.zip文件)
生活随笔
收集整理的這篇文章主要介紹了
基于Python——实现远程下载sftp文件(只下载.zip文件)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【背景】遠程下載發布包等文件時,總是要使用WinSCP等工具登陸拖動。今天就介紹一種使用python下載文件到本地的方法。
【代碼實現】
1 import paramiko # paramiko模塊,基于SSH用于連接遠程服務器并執行相關操作 2 import os 3 4 5 def DownLoadFile(sftp, LocalFile, RemoteFile): # 下載單個文件 7 file_handler = open(LocalFile, 'wb') # wb 以二進制格式打開文件寫入 8 print(file_handler) 9 sftp.get(RemoteFile, LocalFile) # 下載目錄中文件 10 file_handler.close() 11 return True 12 13 14 def DownLoadFileTree(sftp, LocalDir, RemoteDir): # 下載整個目錄下的文件 15 if not os.path.exists(LocalDir): # 如果本地文件夾不存在,則創建它 16 os.makedirs(LocalDir) 17 for file in sftp.listdir(RemoteDir): #sftp.listdir()返回當前目錄下清單列表 18 Local = os.path.join(LocalDir, file) #os.path.join()用于拼接文件路徑 19 Remote = os.path.join(RemoteDir, file) 20 if os.path.isdir(file): # 判斷是否是文件 21 if not os.path.exists(Local): #對于文件夾:如果本地不存在,就創建該文件夾 22 os.makedirs(Local) 23 DownLoadFileTree(sftp, Local, Remote) 24 else: # 是文件 25 if os.path.splitext(Remote)[1] == '.zip': #os.path.splitext(Remote)[1]獲取文件擴展名,判斷是否為.zip文件 26 DownLoadFile(sftp, Local, Remote) #下載文件 27 print "complete!"1 if __name__ == '__main__': 2 host = '主機名' # 主機 3 port = 端口號# 端口 4 username = '用戶名' # 用戶名 5 password = '密碼' # 密碼 6 client = paramiko.Transport((host, port)) #連接服務器 7 client.connect(username=username, password=password) 8 sftp = paramiko.SFTPClient.from_transport(client) 9 local = raw_input("please input the local path(eg.D:\\V1.6):") #輸入本地文件路徑 10 remote = '/app/...' # 遠程文件或目錄 11 DownLoadFileTree(sftp, local, remote) # 下載
?代碼實現了遠程連接服務器,輸入本地路徑,就會自動下載需要的壓縮文件,比可視化工具更快捷。
轉載于:https://www.cnblogs.com/testxiaobai/p/10488712.html
總結
以上是生活随笔為你收集整理的基于Python——实现远程下载sftp文件(只下载.zip文件)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复习宝典之Maven项目管理
- 下一篇: VS2017源代码版本管理