首页 > 编程语言 > 详细

基于Python——实现远程下载sftp文件(只下载.zip文件)

时间:2019-03-07 13:14:56      阅读:135      评论:0      收藏:0      [点我收藏+]

【背景】远程下载发布包等文件时,总是要使用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)  # 下载

 代码实现了远程连接服务器,输入本地路径,就会自动下载需要的压缩文件,比可视化工具更快捷。

基于Python——实现远程下载sftp文件(只下载.zip文件)

原文:https://www.cnblogs.com/testxiaobai/p/10488712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!