Python getmtime()不';t返回一秒的分数

Python getmtime()不';t返回一秒的分数,python,linux,centos,Python,Linux,Centos,我为centos 5.3编译了python 2.6.4,发现os.path.getmtime()或os.stat().m_time没有分数部分。根据文档,如果os.stat\u float\u times()返回True,那么它应该返回float值。在我的例子中,我确实将其视为浮点,但没有分数部分(它是0) 同样奇怪的是,stat()输出看起来像一个int。在windows上,我确实看到了一部分具有相同的python版本。我在colinux上运行centos,这可能是一个角色,还是一些pytho

我为centos 5.3编译了python 2.6.4,发现os.path.getmtime()或os.stat().m_time没有分数部分。根据文档,如果os.stat\u float\u times()返回True,那么它应该返回float值。在我的例子中,我确实将其视为浮点,但没有分数部分(它是0)


同样奇怪的是,stat()输出看起来像一个int。在windows上,我确实看到了一部分具有相同的python版本。我在colinux上运行centos,这可能是一个角色,还是一些python构建问题?我找不到通用colinux版本的任何点击率。可能是colinux配置文件系统的方式?在这种情况下,我需要检查什么?

这是一个文件系统限制,而不是Python限制。Centos仍然在ext3上,ext3提供整数mtime。如果使用
ls
显示MTIME,则可以看到这一点。试一试

ls -ld --full-time /tmp
在我的ext3 Centos盒子上,我得到

drwxrwxrwt 11 root root 69632 2010-03-11 13:16:30.000000000 -0800 /tmp
drwxrwxrwt 16 root root 20480 2010-03-11 21:20:02.088188962 +0000 /tmp
在我的ext4 Ubuntu盒上,我得到

drwxrwxrwt 11 root root 69632 2010-03-11 13:16:30.000000000 -0800 /tmp
drwxrwxrwt 16 root root 20480 2010-03-11 21:20:02.088188962 +0000 /tmp
以下章节对此进行了描述:

改进的时间戳

随着计算机总体速度的提高,以及Linux越来越多地用于任务关键型应用程序,基于秒的时间戳的粒度变得不够。为了解决这个问题,ext4提供了以纳秒为单位的时间戳。此外,将扩展的时间戳字段的2位添加到时间戳的秒字段的最高有效位,以将2038年问题再延迟204年


谢谢,这很有道理。我验证了文件系统是ext3,但实际上我并不知道这是一个限制。这些信息将有助于调整程序或决定使用ext4。