Python,在特定的ord中运行命令

2024-04-19 14:44:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个脚本,从unix目录中获取最近修改过的文件。 我确信它是有效的,但我必须创建一个unittest来证明它。你知道吗

问题是设置功能。我希望能够预测文件的创建顺序。你知道吗

self.filenames = ["test1.txt", "test2.txt", "test3.txt", "filename.txt", "test4"]
newest = ''
for fn in self.filenames:
    if pattern.match(fn): newest = fn
    with open(fn, "w") as f: f.write("some text")

模式是“test.*.txt”,所以它只匹配列表中的前三个。在多个测试中,newest有时返回“test3.txt”,有时返回“test1.txt”。你知道吗


Tags: 文件self功能目录txt脚本证明顺序
3条回答

可能是因为同步。仅仅因为对文件按特定顺序调用write(),并不意味着操作系统将按该顺序更新数据。你知道吗

在转到下一个文件之前,请尝试在file对象上调用f.flush(),后跟os.fsync()。在调用之间留出一些时间(使用sleep())可能也会有所帮助

使用os.utime显式设置已创建文件的修改时间。这样你的测试速度会更快。你知道吗

我怀疑您使用的文件系统是否支持文件创建时间的小数秒。你知道吗

我建议您在循环中插入对time.sleep(1)的调用,以便文件系统在每个创建的文件上都有不同的时间戳。你知道吗

相关问题 更多 >