主页 > 知识库 > python实现自动下载sftp文件

python实现自动下载sftp文件

热门标签:硅谷的囚徒呼叫中心 企业做大做强 百度AI接口 电话运营中心 呼叫中心市场需求 Win7旗舰版 语音系统 客户服务

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

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

  • 系统环境:centos7
  • python版本:python3
  • 使用模块包:paramiko ,若未安装,可使用 pip install paramiko 进行安装

需求实例: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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • 十个Python自动化常用操作,即拿即用
  • 教你怎么用Python实现自动生日祝福
  • 如何用 Python 子进程关闭 Excel 自动化中的弹窗
  • python自动化之如何利用allure生成测试报告
  • 教你怎么用Python处理excel实现自动化办公
  • Python+uiautomator2实现自动刷抖音视频功能
  • Python 制作自动化翻译工具
  • python实现百度文库自动化爬取
  • 用python自动生成日历
  • python调用stitcher类自动实现多个图像拼接融合功能
  • 使用Python自动化Microsoft Excel和Word的操作方法
  • python 自动刷新网页的两种方法
  • 发工资啦!教你用Python实现邮箱自动群发工资条

标签:长沙 山西 山西 崇左 海南 喀什 安康 济南

巨人网络通讯声明:本文标题《python实现自动下载sftp文件》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266