【背景】远程下载发布包等文件时,总是要使用WinSCP等工具登陆拖动。今天就介绍一种使用python下载文件到本地的方法。

【代码实现】

 import paramiko   # paramiko模块,基于SSH用于连接远程服务器并执行相关操作
import os def DownLoadFile(sftp, LocalFile, RemoteFile): # 下载单个文件
file_handler = open(LocalFile, 'wb') # wb 以二进制格式打开文件写入
print(file_handler)
sftp.get(RemoteFile, LocalFile) # 下载目录中文件
file_handler.close()
return True def DownLoadFileTree(sftp, LocalDir, RemoteDir): # 下载整个目录下的文件
if not os.path.exists(LocalDir): # 如果本地文件夹不存在,则创建它
os.makedirs(LocalDir)
for file in sftp.listdir(RemoteDir): #sftp.listdir()返回当前目录下清单列表
Local = os.path.join(LocalDir, file) #os.path.join()用于拼接文件路径
Remote = os.path.join(RemoteDir, file)
if os.path.isdir(file): # 判断是否是文件
if not os.path.exists(Local): #对于文件夹:如果本地不存在,就创建该文件夹
os.makedirs(Local)
DownLoadFileTree(sftp, Local, Remote)
else: # 是文件
if os.path.splitext(Remote)[1] == '.zip': #os.path.splitext(Remote)[1]获取文件扩展名,判断是否为.zip文件
DownLoadFile(sftp, Local, Remote) #下载文件
print "complete!"
 if __name__ == '__main__':
host = '主机名' # 主机
port = 端口号# 端口
username = '用户名' # 用户名
password = '密码' # 密码
client = paramiko.Transport((host, port)) #连接服务器
client.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(client)
local = raw_input("please input the local path(eg.D:\\V1.6):") #输入本地文件路径
remote = '/app/...' # 远程文件或目录
DownLoadFileTree(sftp, local, remote) # 下载

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

基于Python——实现远程下载sftp文件(只下载.zip文件)的更多相关文章

  1. gradlew wrapper使用下载到本地的gradle.zip文件装配--转

    原文地址:http://www.myexception.cn/mobile/1860089.html gradlew wrapper使用下载到本地的gradle.zip文件安装.使用gradlew来b ...

  2. php读取excel,以及php打包文件夹为zip文件

    1.把文件下载到本地,放在在Apache环境下2.d.xlsx是某游戏的服务器名和玩家列表,本程序只适合此种xlsx文件结构,其他结构请修改index.php源码3.访问zip.php的功能是把生成的 ...

  3. salesforce 零基础学习(五十三)多个文件生成一个zip文件(使用git上封装的代码)

    此篇参考git代码:https://github.com/pdalcol/Zippex 学习salesforce可以访问一个朋友的网站:https://www.xgeek.net 首先感谢git上提供 ...

  4. linux下压缩成zip文件解压zip文件

    linux  zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径] linux  zip命令参数列表: -a     将文件转成ASCII模式 -F     尝试修复损坏 ...

  5. java打包文件夹为zip文件

    //待压缩的文件目录 String sourceFile=sourceFilePath+"\\"+userName; //存放压缩文件的目录 String zipFilePath ...

  6. php打包文件夹成zip文件

    function addFileToZip($path,$zip){    $handler=opendir($path); //打开当前文件夹由$path指定.    while(($filenam ...

  7. Java—将文件压缩为zip文件

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...

  8. Python脚本完美解决Linux环境解压.zip文件乱码问题

    1.vi uzip(文件名)2.复制以下Python程序 #!/usr/bin/env python # -*- coding: utf-8 -*- # uzip.py import os impor ...

  9. 批量压缩文件夹到Zip文件

    实现效果: 实现代码:

随机推荐

  1. 与HTTP关系密切的三个协议:IP,TCP,DNS

    IP(网际协议): 位于网络层 通常易混淆的是“IP”和“IP地址”,单独讲“IP”是指一种协议名称 IP协议的作用是将各种数据包传送给对方.而要保证确实传送到对方那里,则需要满足各类条件. 其中两个 ...

  2. React-Router4.x中文文档

    以下为翻译的中文API(水平有限,凑合看,欢迎纠正补充~) <BrowserRouter> 使用HTML5历史记录API(pushState,replaceState和popstate事件 ...

  3. Python基础(一)常用函数

    1.map() 此函数可以,将列表内每一个元素进行操作,并返回列表 原型 map(function,[list]) def fc(x): return x * 2 print(map(fc,[1,2, ...

  4. nodejs之querystring(查询字符串)

    querystring模块经常用在URL参数的处理,一共有四个方法: 1. stringify (字符串转对象) 2. parse (对象转字符串) 3. escape (对字符串进行URL编码) 4 ...

  5. 解析web应用处理流程

    客户端(浏览器.app.ajax.爬虫程序)通过域名(dns绑定)向服务器发送http协议,域名可以泛解析到机群.机器,服务器接收http请求报文,通过WSGI协议链接框架做代码逻辑层的处理,解析完逻 ...

  6. java poi 合并 word文档

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import jav ...

  7. Interesting (manacher + 前缀和处理)

    题意:相邻的两端回文串的价值为两个回文串总的区间左端点 × 区间右端点.然后计算目标串中所有该情况的总和. 思路:首先用manacher求出所有中心点的最大半径,然后我们知道对于左区间我们把贡献记录在 ...

  8. jmeter如何玩?

    ApacheJMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件.J ...

  9. activiti5/6 系列之--Activiti与BPMN2.0规范相关节点对应关系

    根据BPMN2.0规范的分类划分为以下部分: 1.启动与结束事件(event) 2.顺序流(Sequence Flow) 3.任务(Task) 4.网关(Gateway) 5.子流程(Subproce ...

  10. cpu使用率低负载高,原因分析

    原因总结 产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低. 下面内容是具体的原理分析:在分析负载为什么 ...