python实现自动下载sftp文件

作者:Jepson2017 时间:2022-01-25 12:55:36 

本文实例为大家分享了python实现自动下载sftp文件的具体代码,供大家参考,具体内容如下

实现功能:利用python自动连接sftp,并下载sftp中指定目录下的所有目录及文件

  • 系统环境:centos7

  • python版本:python3

  • 使用模块包:paramiko ,若未安装,可使用 pip install paramiko 进行安装

需求实例:sftp中的文件如下

python实现自动下载sftp文件

将sftp根目录中的所有文件下载到本地 /data/test 目录中

实现代码:


#!/usr/bin/python
# coding=utf-8

import paramiko
import os

def sftp_download(sftp,localDir,remoteDir):
   if remoteDir.find(".") == -1:#判断远程目录参数是否是目录,前提是远程的文件名中都包含扩展名,否则此方法不可用
       for file in sftp.listdir(remoteDir):
           remoteDirTmp=os.path.join(remoteDir,file)
           localDirTmp=os.path.join(localDir,file)
           sftp_download(sftp,localDirTmp,remoteDirTmp)
   else:
       localPath=localDir.rpartition("/")[0]
       if not os.path.exists(localPath):
           os.makedirs(localPath)
       print("download file:",remoteDir)
       try:
           sftp.get(remoteDir,localDir)
       except Exception as e:
           print('download exception:',e)

if __name__ == '__main__':
   host = '192.168.149.128'#sftp主机
   port = 22 #端口
   username = 'sftp' #sftp用户名
   password = '123456'  
   localDir = '/data/test'#本地文件或目录
   remoteDir = '/'#远程文件或目录
   sf = paramiko.Transport((host,port))
   sf.connect(username = username,password = password)
   sftp = paramiko.SFTPClient.from_transport(sf)
   sftp_download(sftp,localDir,remoteDir)
   sf.close()

来源:https://blog.csdn.net/d1240673769/article/details/106295184

标签:python,下载文件
0
投稿

猜你喜欢

  • python对csv文件追加写入列的方法

    2022-11-14 01:56:29
  • SQL Server TEXT、NTEXT字段拆分的问题

    2008-10-26 12:28:00
  • python获取指定网页上所有超链接的方法

    2023-07-18 11:50:20
  • ASP分页技术详解

    2007-08-13 15:25:00
  • Python用20行代码实现完整邮件功能

    2023-04-06 12:20:49
  • 详解Python中的type()方法的使用

    2022-01-03 03:11:06
  • 如何把数组转换成字符串?

    2009-11-06 13:49:00
  • ASP脚本变量、函数、过程和条件语句

    2008-10-14 14:43:00
  • JS实现数字格式千分位相互转换方法

    2023-08-31 08:24:48
  • Python中plt.imshow(image)无法显示图片的解决

    2022-01-12 15:33:04
  • Python:slice与indices的用法

    2021-09-10 22:31:09
  • Python Matplotlib数据可视化模块使用详解

    2022-06-03 01:24:11
  • PyQT5 emit 和 connect的用法详解

    2022-02-08 15:15:11
  • windows下安装Python虚拟环境virtualenvwrapper-win

    2023-12-23 11:24:08
  • 随机提取N条记录方法

    2007-10-11 18:04:00
  • SQLServer与服务器连接时出错的解决方案

    2009-06-28 14:35:00
  • Python全栈之文件函数和函数参数

    2023-05-11 02:28:21
  • Python玩转Excel的读写改实例

    2022-01-27 19:59:47
  • python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作

    2024-01-02 12:40:07
  • 文字解说Golang Goroutine和线程的区别

    2023-10-15 18:56:36
  • asp之家 网络编程 m.aspxhome.com