为什么shutil.copy2有时会修改文件的st_mtime?

问题描述

我目前正在编写一个小的python3脚本来监视我的macOS文件系统的各个部分。它检查选定的文件夹中是否有新文件修改过的文件,并将它们(通过shutil.copy2复制到我不时检查的检查文件夹中。修改测试使用原始st_mtime与(已复制)文件的比较。在测试它时,我遇到了一些奇怪的行为:尽管未修改,但还是一遍又一遍地复制了一些文件

经过一番摸索,我发现shutil.copy2显然并不总是继承确切的st_mtime。 (我还明确尝试了shutil.copystat,结果相同-并不奇怪。)

为了说明我的问题:当我运行以下代码时...

from shutil import copy2
from os import stat

source = '/Users/me/myfile'
target = source + '-copy'
copy2(source,target)
print(stat(source).st_mtime,stat(target).st_mtime)

...结果有时看起来像(并非总是这样):

1600616170.8300607 1600616170.83006

当我使用纳秒级st_mtime_ns时,结果如下:

1600616170830060720 1600616170830060000

现在我的问题是:有人知道这是怎么回事吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)