【背景】远程下载发布包等文件时,总是要使用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. 【Python全栈-后端开发】Django进阶1-分页

    Django[进阶篇-1 ]分页 分页 一.Django内置分页 from django.core.paginator import Paginator, EmptyPage, PageNotAnIn ...

  2. NIO学习资料

    五大IO模型 https://jiges.github.io/2018/02/07/%E4%BA%94%E5%A4%A7IO%E6%A8%A1%E5%9E%8B/ Getting started wi ...

  3. js 获取时区

    js的时区函数: 设datename为创建的一个Date对象 ====================datename.getTimezoneOffset()--取得当地时间和GMT时间(格林威治时间 ...

  4. tp5 model controlle sql

    model::::use think\Db 引用db库类 用于数据库之类use think\Model 引用模板use think\Cookie 引用传值 $rs=Db::name(‘表名’)-> ...

  5. windows程序设计 Unicode和多字节

    Unicode和多字节 Unicode是宽字符 多字节是窄字符 类型 变量类型 初始化方式 Unicode LPWSTR L"string" 多字节 LPSTR "str ...

  6. linux 创建用户和添加到组

    1.添加用户 先用root用户登录 useradd -m testuser #这样的做会在/home下创建目录 2.指定shell #cat /etc/passwd  #查看用户指定shell roo ...

  7. JavaScript实现全屏显示

    <!doctype html> <html> <head> <title>全屏显示</title> <meta charset=&qu ...

  8. flutter的webview案例

    flutter 加载webview 安装插件  flutter_webview_plugin: ^0.2.1 从listview点击item跳转页面加载详情页案例 import 'dart:async ...

  9. Dart编程语言入门

    Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...

  10. php 把一个数组分成几个数组

    <?php /* * * 把一个数组分成几个数组 * $arr 数组 * $num 获取的数量 * */ function sliceArr($arr, $num) { //数组的个数 $lis ...