如何使用 Paramiko 从 SFTP 服务器仅下载最新文件?

2024-02-14

我想编写连接到我的大学 SFTP 服务器并下载最新文件和练习的脚本。到目前为止,我已经对 Paramiko 示例中的代码进行了一些更改,但我不知道如何下载最新的文件。

这是我的代码:

import functools
import paramiko 

class AllowAnythingPolicy(paramiko.MissingHostKeyPolicy):
    def missing_host_key(self, client, hostname, key):
        return

adress = 'adress'
username = 'username'
password = 'password'

client = paramiko.SSHClient()
client.set_missing_host_key_policy(AllowAnythingPolicy())
client.connect(adress, username= username, password=password)

def my_callback(filename, bytes_so_far, bytes_total):
    print ('Transfer of %r is in progress' % filename) 

sftp = client.open_sftp()
sftp.chdir('/directory/to/file')
for filename in sorted(sftp.listdir()):
    if filename.startswith('Temat'):
        callback_for_filename = functools.partial(my_callback, filename)
        sftp.get(filename, filename, callback=callback_for_filename)

client.close() 

Use the SFTPClient.listdir_attr https://docs.paramiko.org/en/latest/api/sftp.html#paramiko.sftp_client.SFTPClient.listdir_attr而不是SFTPClient.listdir获取带有属性的列表(包括文件时间戳)。

然后,找到最大的文件条目.st_mtime属性 https://docs.paramiko.org/en/latest/api/sftp.html#paramiko.sftp_attr.SFTPAttributes.

代码如下:

latest = 0
latestfile = None

for fileattr in sftp.listdir_attr():
    if fileattr.filename.startswith('Temat') and fileattr.st_mtime > latest:
        latest = fileattr.st_mtime
        latestfile = fileattr.filename

if latestfile is not None:
    sftp.get(latestfile, latestfile)

有关更复杂的示例,请参见如何在 Linux 中获取包含感兴趣的特定文件的最新文件夹并在 Python 中使用 Paramiko 下载该文件? https://stackoverflow.com/q/60218092/850848

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Paramiko 从 SFTP 服务器仅下载最新文件? 的相关文章

  • DataFrame 在函数内部修改

    我面临一个我以前从未观察到的函数内数据帧修改的问题 有没有一种方法可以处理这个问题 以便初始数据帧不被修改 def test df df tt np nan return df dff pd DataFrame data 现在 当我打印时d
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • 子进程改变目录

    我想在子目录 超级目录中执行脚本 我需要首先进入该子目录 超级目录 我无法得到subprocess进入我的子目录 tducin localhost Projekty tests ve python Python 2 7 4 default
  • 如何找到列表S的所有分区为k个子集(可以为空)?

    我有一个唯一元素列表 比方说 1 2 我想将其拆分为 k 2 个子列表 现在我想要所有可能的子列表 1 2 1 2 2 1 1 2 我想分成 1 1 2 我怎样才能用 Python 3 做到这一点 更新 我的目标是获取 N 个唯一数字列表的
  • 在Python中创建一个新表

    我正在尝试从数控机床中提取数据 事件每毫秒发生一次 我需要过滤掉一些用管道 分隔的变量分隔符 PuTTy exe 程序生成的日志文件 我尝试阅读熊猫 但列不在同一位置 df pd read table data log sep 日志文件的一
  • 在 Flask (WSGI) 中使用全局单例,我是否需要担心竞争条件? [复制]

    这个问题在这里已经有答案了 Flask 的 hello world 演示是 from flask import Flask app Flask name app route def hello return Hello World if n
  • 为 Networkx 图添加标题?

    我希望我的代码创建一个带有标题的图 使用下面的代码 可以创建绘图 但没有标题 有人可以告诉我我做错了什么吗 import pandas as pd import networkx as nx from networkx algorithms
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • 错误:无法访问文件“$libdir/plpython2”:没有这样的文件或目录

    我正在运行 postgresql 9 4 PostgreSQL 9 4 4 on x86 64 unknown linux gnu compiled by gcc GCC 4 1 2 20070626 Red Hat 4 1 2 14 64
  • 杂乱的扭曲连接在不干净的时尚中消失了。没有代理。已经尝试过标题

    我正在尝试抓取这个网站 https www5 apply2jobs com jupitermed ProfExt index cfm fuseaction mExternal searchJobs https www5 apply2jobs
  • Matplotlib 图例不工作

    自从升级 matplotlib 以来 每当尝试创建图例时 我都会收到以下错误 usr lib pymodules python2 7 matplotlib legend py 610 UserWarning Legend does not
  • Python正则表达式从字符串中获取浮点数

    我正在使用正则表达式来解析字符串中的浮点数 re findall a zA Z d d t 是我使用的代码 这段代码有问题 如果数字和任何字符之间没有空格 则不会解析该数字 例如 0 1 2 3 4 5 6 7 8 9 的预期输出为 0 1
  • 为什么“return self”返回 None ? [复制]

    这个问题在这里已经有答案了 我正在尝试获取链的顶部节点getTopParent 当我打印出来时self name 它确实打印出了父实例的名称 然而 当我回来时self 它返回 None 为什么是这样 class A def init sel
  • 大型数据集上的 Sklearn-GMM

    我有一个很大的数据集 我无法将整个数据放入内存中 我想在这个数据集上拟合 GMM 我可以用吗GMM fit sklearn mixture GMM 重复小批量数据 没有理由重复贴合 只需随机采样您认为机器可以在合理时间内计算的尽可能多的数据
  • 如何向 SCons 构建添加预处理和后处理操作?

    我正在尝试在使用 SCons 构建项目时添加预处理和后处理操作 SConstruct 和 SConscript 文件位于项目的顶部 预处理动作 生成代码 通过调用不同的工具 gt 不知道在此预处理之后将生成的确切文件 可以创建用于决定生成哪
  • 如何设置 matplotlib 表中列的背景颜色

    我在一个目录中有多个 txt 文件 例如 d memdump 0 txt 1 txt 10 txt 示例文本文件如下 Applications Memory Usage kB Uptime 7857410 Realtime 7857410
  • SQLAlchemy:避免声明式样式类定义中的重复

    我正在使用 SQLAlchemy 并且我的对象模型中的许多类具有相同的两个属性 id 和 整数和主键 以及名称 字符串 我试图避免在每个类中声明它们 如下所示 class C1 declarative base id Column Inte
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa
  • 在Python中从日期时间中减去秒

    我有一个 int 变量 它实际上是秒 让我们调用这个秒数X 我需要得到当前日期和时间 以日期时间格式 减去的结果X秒 Example If X是 65 当前日期是2014 06 03 15 45 00 那么我需要得到结果2014 06 03
  • Python 枚举子集迭代

    我想迭代以下枚举的子集 class Items enum Enum item1 0 item2 1 item3 2 item4 3 item5 4 item6 5 item7 6 item8 7 说我想 for item in Items

随机推荐

  • 如何在java中更快地计算sha256?

    我发现在java中计算sha256很慢 例如 它比python慢 我编写了两个简单的基准测试来计算 1GB 零的 sha256 在这两种情况下 结果是相同且正确的 但 python 时间为 5653ms java 时间为 8623ms 慢了
  • 在 SQL Server 中删除具有默认约束的列(IF EXISTS)

    我正在编写一个用于删除列和默认约束的 SQL 脚本 以下脚本工作正常 但我想知道这是否是正确的方法 我可以在一个语句中删除带有列的默认约束 而不是使用两个单独的约束吗 IF EXISTS SELECT FROM dbo sysobjects
  • 将 NSUserDefaults 转换为钥匙串?

    所以 NSUserDefaults 非常容易使用 但显然 它不太安全 没有加密 当然 客户希望应用程序首选项是安全的 因为它包含敏感数据 但钥匙串是安全的 尽管很难编码 显然 那么有没有一种方法可以轻松地将 NSUserDefaults 代
  • tslint 更新错误“找不到模块 'tslint/lib/lint'”

    我们最近将 Angular 2 项目升级为 angular cli1 0版本 我们还升级了tslint from 2 x to 5 x 现在我们收到以下信息tslint设计时出错 在 VSCode 输出终端中 验证时找不到模块 tslint
  • 无法将 django 模型导入到 celery 任务中

    我有以下任务 from future import absolute import from myproject celery import app from myapp models import Entity app task def
  • vue 3打字稿未捕获(承诺中)TypeError:this.$on不是一个函数

    我安装了一个新的 Vue 3 其中包含 vue cli 和 typescript 一切都在运行 但是当我添加一个https vue select org https vue select org 包裹 我在浏览器控制台上收到此错误 Unca
  • 如何在 Node.js 中等待异步请求循环完成?

    我想在 node js 中发出多个请求来获取几个外部 API 响应 并将它们合并到一个数组中 我正在使用 for 循环来实现此目的 这是我的代码 res setHeader Content Type application json con
  • 如何在 Angular 2 中打印 PDF

    我有 pdf 文件的 URL exa url 是 test example com incoice 1 download auth token some token 当我访问此 url 时 该 url 将在浏览器中显示 PDF 现在我想用打
  • 如何使用 Bresenham 创建任意粗细的线?

    我目前正在使用 Bresenham 的算法来绘制线条 但它们的厚度 当然 是一个像素 我的问题是绘制任意粗细的线条最有效的方法是什么 我使用的语言是C 再取一个 Bresenham 循环 并用它来修改原始线在矩形方向上的起始和结束位置 问题
  • 如何提高 Java 中收据打印机和 ESC/POS 命令的速度

    我有一个用 Java 与热敏打印机通信的应用程序 使热敏打印机使用 Star tsp 100 打印机打印带有条形码 强调 不同尺寸等的收据 我可以让程序打印出我喜欢的内容 但是打印机速度很慢 我相信原因是我使用了非首选的方式 方法发送字节命
  • 在 ASP.Net MVC 中管理 MongoDB 连接的正确方法是什么?

    管理 MongoServer 类生命周期的最佳实践是什么 我应该创建一个并在每个请求结束时关闭它 还是应该使用 StructureMap 之类的东西在应用程序的整个生命周期中将其保留为单例 任何帮助都是值得赞赏的 In 官方文档 http
  • 如何对行组上的 SSRS 矩阵列求和

    我有一份报告 显示一个人为他们分配到的每个项目工作的总小时数 按月汇总 我想在 SSRS 2008 R2 中计算每个人每个月的总小时数 因此 例如 我有以下数据 并希望像这样列出总计 January February March Worke
  • 为什么在预提交挂钩中执行 git add 后索引没有更新?

    我有一个预提交钩子 检查我的版本文件是否需要更新 修改所述文件 对此文件执行 git add 这允许我将更新的版本文件添加到同一提交中 我遇到的唯一问题是 在钩子运行后 工作树和 HEAD 会使用新版本文件进行更新 但索引不会 我需要手动暂
  • Firebase 推送通知在某些设备上无法正常工作

    对于推送通知 我使用 FCM 我在 VIVO V3 手机中遇到一些问题 相同的代码适用于其他设备 黑莓 华为 三星 适用于以下所有场景我已经测试了 3 个场景 当应用程序位于前台时 当应用程序处于后台时 当应用程序完全杀死时 前 2 个条件
  • ConsoleAppender 实例化不起作用:具有私有访问权限

    我的 ConsoleAppender 类实例化不起作用 import org apache logging log4j core appender ConsoleAppender public class Application priva
  • 如何在 PHP 中将 PDF 版本 1.5 转换为版本 1.4

    如何在 PHP 中将 PDF 版本 1 5 转换为版本 1 4 有人能指出我正确的方向吗 我有类似的需求 发现Ghostscript可以修改PDF版本 文档在这里 http ghostscript com doc current Use h
  • 如何使用setCamera(MediaRecorder)?

    根据Android SDK MediaRecorder setCamera可以用于回收现有的相机实例进行视频捕获和预览 而无需重置预览 我无法找到任何示例 并且我所有的尝试都是徒劳的 我要么得到错误的状态异常 要么 MediaRecorde
  • 从 ASP.NET 应用程序写入 IIS 日志

    我想让我的 ASP NET 应用程序将行写入日志中的某个位置 IIS 是否提供任何内置方式来记录 ASP NET 日志消息 我在想可能有一种方法可以捕获对 System Diagnostics Debug WriteLine 的调用 但我找
  • SQLite 外部查询返回内部查询中找不到的结果

    我只是想知道是否有人遇到过 SQLite 3 7 4 中的情况 其中查询将返回一组结果 而当它成为子查询时 结果完全不同 我在更复杂的查询中发现了问题 但这里有一个更简单的示例 演示了相同的行为 数据库设置 CREATE TABLE tes
  • 如何使用 Paramiko 从 SFTP 服务器仅下载最新文件?

    我想编写连接到我的大学 SFTP 服务器并下载最新文件和练习的脚本 到目前为止 我已经对 Paramiko 示例中的代码进行了一些更改 但我不知道如何下载最新的文件 这是我的代码 import functools import parami