os.path.getmtime()
并且os.stat()
似乎只在整秒内返回值。
这是 Windows 或 OSX 文件系统上可能的最大分辨率,还是有办法在文件时间上获得更大的分辨率?
os.path.getmtime()
并且os.stat()
似乎只在整秒内返回值。
这是 Windows 或 OSX 文件系统上可能的最大分辨率,还是有办法在文件时间上获得更大的分辨率?
os.stat() 的文档有一条说明:
st_atime、st_mtime 和 st_ctime 成员的确切含义和解析取决于操作系统和文件系统。例如,在使用 FAT 或 FAT32 文件系统的 Windows 系统上,st_mtime 的分辨率为 2 秒,而 st_atime 的分辨率仅为 1 天。有关详细信息,请参阅您的操作系统文档。
例如在Windows上,用于表示文件时间的 FILETIME 结构使用 100 纳秒的分辨率。我希望 Python 能够“知道”这一点,并为您提供最佳解决方案。您是否有可能使用 FAT 文件系统上的文件?
HFS+(由 OS X 使用)的日期分辨率为一秒。
如Pythonos
模块中所述,它是操作系统特定功能的可移植接口。根据您运行的平台,您将获得不同的行为。
具体来说,调用返回的修改时间stat
取决于文件所在的文件系统。例如,对于 FAT 文件系统中的条目,修改时间的最佳分辨率是 2 秒。其他文件系统将具有不同的分辨率。
Python 3 os.stat() 包含具有纳秒分辨率的 st_atime_ns、st_ctime_ns、st_mtime_ns 属性,取决于文件系统保存的时间结构。见:https ://docs.python.org/3/library/os.html