当前位置:  开发笔记 > 编程语言 > 正文

os.path.getmtime()不返回秒的分数

如何解决《os.path.getmtime()不返回秒的分数》经验,为你挑选了1个好方法。

我为centos 5.3编译了python 2.6.4并发现了os.path.getmtime()或os.stat().m_time没有小数部分的问题.根据文档,如果os.stat_float_times()返回True,那么它应返回float值.在我的情况下,我确实看到它是浮动的,但没有分数部分(它是0).

In [3]: os.path.getmtime('/tmp') 
Out[3]: 1268339116.0

In [4]: os.stat('/tmp')
Out[4]: posix.stat_result(st_mode=17407, st_ino=508897L, st_dev=29952L, st_nlink=7, st_uid=0, st_gid=0, st_size=4096L, st_atime=1268101696, st_mtime=1268339116, st_ctime=1268339116)

In [5]: os.stat_float_times()
True

In [6]: os.stat('/tmp').st_mtime
Out[6]: 1268339116.0

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



1> ire_and_curs..:

这是一个文件系统限制,而不是Python.Centos仍然在ext3上,它提供整数mtimes.如果你显示mtimes,你可以看到这个ls.尝试

ls -ld --full-time /tmp

在我的ext3 Centos盒子上,我明白了

drwxrwxrwt 11 root root 69632 2010-03-11 13:16:30.000000000 -0800 /tmp

在我的ext4 Ubuntu盒子上,我明白了

drwxrwxrwt 16 root root 20480 2010-03-11 21:20:02.088188962 +0000 /tmp

这在ext4维基百科文章中有所描述:

改进了时间戳

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

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有