gpt4 book ai didi

python ftplib : Best way to check if a file has changed?

转载 作者:行者123 更新时间:2023-11-28 17:50:49 25 4
gpt4 key购买 nike

我想安排 FTP 文件传输,但为了节省带宽,我只想上传已更改的文件。有什么好的可靠方法可以在各种不同的托管服务提供商上运行?

最佳答案

首先,检查本地文件是否发生变化与FTP 没有任何关系。你是说你只会打开一个 FTP 连接来上传文件,如果/当它发生变化时。

在高层次上,您需要采用的基本策略是跟踪您的应用程序上次检查更改的时间(之前的执行时间戳),并将其与您感兴趣的文件的时间戳进行比较上传。如果文件上的时间戳较新,则它们很可能已更改。我说最有可能是因为可以只更新时间戳(例如 unix/linux 上的 touch)。

这是一个简单的示例,向您展示如何检查特定目录中所有项目的修改时间:

import os, time

checkdir="./"

for item in os.listdir(checkdir):
item_path = "%s%s"%(checkdir,item)
mtime = os.path.getmtime(item_path)
print "%s: %s" %(item_path,mtime)

请注意,这不会区分文件类型(例如常规文件、目录、符号链接(symbolic link))。阅读 docs on os.path了解如何确定文件类型,以便您可以选择跳过某些类型。

您仍然需要想出存储上一次“扫描”时间的逻辑,以便在后续扫描中引用它。一个非常简单的方法是在文件中存储一个值。

确保使用锁定策略以防两次“扫描”重叠。 FTP 上传需要一些时间才能完成。

关于 python ftplib : Best way to check if a file has changed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10261791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com