python下paramiko模块学习之四:从远程主机批量下载文件到本机

简介:

前面我们已经学习了paramiko的上传功能,这里就要给大家介绍下他的下载功能,呵呵,不废话了,直接上代码,感兴趣的可以研究下:

 
  1. [root@centos6 python]# cat paramiko-download.py 
  2. #!/usr/bin/env python 
  3. import paramiko 
  4. import os 
  5. import datetime 
  6. hostname='74.63.229.*' 
  7. username='root' 
  8. password='abc123' 
  9. port=22 
  10. local_dir='/tmp/' 
  11. remote_dir='/tmp/test/' 
  12. if __name__=="__main__"
  13.  #    try: 
  14.         t=paramiko.Transport((hostname,port)) 
  15.         t.connect(username=username,password=password) 
  16.         sftp=paramiko.SFTPClient.from_transport(t) 
  17. #        files=sftp.listdir(dir_path) 
  18.         files=sftp.listdir(remote_dir) 
  19.         for f in files: 
  20.                 print '' 
  21.                 print '#########################################' 
  22.                 print 'Beginning to download file  from %s  %s ' % (hostname,datetime.datetime.now()) 
  23.                 print 'Downloading file:',os.path.join(remote_dir,f) 
  24.  
  25.                 sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f)) 
  26.                # sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f)) 
  27.  
  28.                 print 'Download file success %s ' % datetime.datetime.now() 
  29.                 print '' 
  30.                 print '##########################################' 
  31.  
  32.      #except Exception: 
  33. #       print "error!" 
  34.         t.close() 
  35.  
  36. [root@centos6 python]# 

    呵呵,代码和前面上传功能稍有区别,这里就不写注释了,我的变量名都是和直观的就能让你明白意思了,哈哈,下面看下演示功能吧,看下效果:

 

 
  1. [root@centos6 python]# clear 
  2. [root@centos6 python]# python paramiko-download.py 
  3.  
  4. ######################################### 
  5. Beginning to download file  from 74.63.229.*  2011-11-05 15:49:01.334686 
  6. Downloading file: /tmp/test/wgetrc 
  7. Download file success 2011-11-05 15:49:05.955184 
  8.  
  9. ########################################## 
  10.  
  11. ######################################### 
  12. Beginning to download file  from 74.63.229.*  2011-11-05 15:49:05.955342 
  13. Downloading file: /tmp/test/xinetd.conf 
  14. Download file success 2011-11-05 15:49:10.929568 
  15.  
  16. ########################################## 
  17.  
  18. ######################################### 
  19. Beginning to download file  from 74.63.229.*  2011-11-05 15:49:10.929740 
  20. Downloading file: /tmp/test/warnquota.conf 
  21. Download file success 2011-11-05 15:49:14.213570 
  22.  
  23. ########################################## 

   呵呵,效果还是不错的,至此,paramiko的上传下载都已经介绍完 了,呵呵,下面讲虾米内容呢,千万别走开,精彩内容继续为你放松,下一次,我将为你介绍和前面讲过的,读取配置文件,上传批量文件到多部服务器,敬请关注。。。

本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/707024如需转载请自行联系原作者


world77

相关文章
|
10月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
511 2
|
10月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
734 1
|
10月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1664 1
|
11月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
2409 2
|
10月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1648 68
|
10月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
395 4
|
11月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
761 159

推荐镜像

更多