基于Python——实现远程下载sftp文件(只下载.zip文件)
【背景】远程下载发布包等文件时,总是要使用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文件)的更多相关文章
- gradlew wrapper使用下载到本地的gradle.zip文件装配--转
原文地址:http://www.myexception.cn/mobile/1860089.html gradlew wrapper使用下载到本地的gradle.zip文件安装.使用gradlew来b ...
- php读取excel,以及php打包文件夹为zip文件
1.把文件下载到本地,放在在Apache环境下2.d.xlsx是某游戏的服务器名和玩家列表,本程序只适合此种xlsx文件结构,其他结构请修改index.php源码3.访问zip.php的功能是把生成的 ...
- salesforce 零基础学习(五十三)多个文件生成一个zip文件(使用git上封装的代码)
此篇参考git代码:https://github.com/pdalcol/Zippex 学习salesforce可以访问一个朋友的网站:https://www.xgeek.net 首先感谢git上提供 ...
- linux下压缩成zip文件解压zip文件
linux zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径] linux zip命令参数列表: -a 将文件转成ASCII模式 -F 尝试修复损坏 ...
- java打包文件夹为zip文件
//待压缩的文件目录 String sourceFile=sourceFilePath+"\\"+userName; //存放压缩文件的目录 String zipFilePath ...
- php打包文件夹成zip文件
function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while(($filenam ...
- Java—将文件压缩为zip文件
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...
- Python脚本完美解决Linux环境解压.zip文件乱码问题
1.vi uzip(文件名)2.复制以下Python程序 #!/usr/bin/env python # -*- coding: utf-8 -*- # uzip.py import os impor ...
- 批量压缩文件夹到Zip文件
实现效果: 实现代码:
随机推荐
- Docker入门3------手动编辑自定义镜像
手动编辑自定义镜像 查看本地现有镜像: 基于centos创建一个,会自动下载centos最新原始镜像 docker run -it --name=web centos /bin/bash 然后在容器内 ...
- PHP调用接口用post方法传送json数据
1.核心代码: <?php require("helper.php"); header('content-type:text/html;charset=utf-8'); $k ...
- Jedis连接 HelloWorld实现
建一个Maven项目, pom里加下jedis依赖, <dependency> <groupId>redis.clients</groupId> <artif ...
- SpringMVC整合mybatis基于纯注解配置
Mybatis整合Spring配置 第一部分:配置Spring框架 配置SpringMVC的步骤 配置流程图 导入包(哪些包,基本包5个,1日志依赖包,2webmvc支持包)SpringMVC配置 & ...
- gitlab的ssh key有2个
Gitlab添加SSH key可以pull不能push的问题 最后解决的是 使用http去clone pull 提交 没用ssh.就是需要输入密码
- webpack 常用命令
1 初始化package.json npm init -y 2 全局安装webpack npm install webpack -g 3 安装webpack依赖 npm install webpack ...
- ucli tcl cmd
ucli接口与tcl 8.6兼容:vcs中要调用ucli接口,执行脚本,必须在compile的时候,加入debug的权限: -debug,-debug_pp,-debug_all,-debug_acc ...
- Python学习笔记(1)__name__变量
这是我在网上找到的一篇文章的标题. 本着学会了才是自己的,所以标题不变,自己试着再写一遍. 问题:__name__是什么? 背景:在学习编程规范的时候,我被要求函数的调用只能在__main()函数中使 ...
- -bash: 未预期的符号 `(' 附近有语法错误
[1]问题现象 -bash: 未预期的符号 `(' 附近有语法错误 [2]解决方案 给括号前面加反斜杠即可 Good Good Study, Day Day Up. 顺序 选择 循环 总结
- CSS——对height和line-height的理解
最近在做CSS界面时经常遇到line-height和height这两个属性,一直没搞很明白,今天静下心来好好网上查阅了一下,算是有所领悟.https://blog.csdn.net/a20131263 ...