【问题标题】:paramiko - How can I refresh the modified date of a file on the SFTP server automatically?paramiko - 如何自动刷新 SFTP 服务器上文件的修改日期?
【发布时间】:2016-09-05 16:54:48
【问题描述】:

我在 SFTP 服务器上有一个文件,应该在某些条件下使用 paramiko 包导入。在不满足这些条件之前,该文件应保留在未导入的服务器上,但应更新其修改日期,以便该日期应始终大于我的导入程序检查文件的时间。

我阅读了包的documentation,但没有找到任何可以做到这一点的功能。

【问题讨论】:

    标签: python sftp paramiko last-modified


    【解决方案1】:

    这里是utime method

     utime(path, times)
    

    设置path指定的文件的访问和修改时间。如果timesNone,则文件的访问和修改时间设置为当前时间。否则,times 必须是一个二元组数字,格式为(atime, mtime),分别用于设置访问时间和修改时间。

    【讨论】:

      【解决方案2】:

      这可以通过将文件从 SFTP 复制到本地主机、从 SFTP 中删除文件并再次将其复制到 SFTP 来完成。

      所以,

      1. get(remotepath, localpath, callback=None)
      2. remove(path)
      3. put(localpath, remotepath, callback=None, confirm=True)

      如果有人有其他想法,请分享你的知识!

      【讨论】:

      • 恐怕不是个好主意。如果您的程序、服务器或网络在此过程中出现故障,您可能会直接终止文件,甚至截断或损坏其内容。
      • paramiko 可以打开文件进行附加(见我的回答)。我几乎可以肯定这会有所帮助。
      【解决方案3】:

      我会尝试以附加模式(“a”)打开文件并立即关闭它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-06
        • 2015-02-20
        • 1970-01-01
        • 2019-03-13
        相关资源
        最近更新 更多