python - Linux系统上Python的高分辨率时间

标签 python

这是一个由两部分组成的问题,第一部分很简单。我试图获取当前时间作为高分辨率数字,这可以使用 perl 中的 Time::HiRes 模块轻松完成。我确实在其他地方找到了这个问题的答案,可以在 python 中使用 time.time() 来使用。唯一的事情是,当我执行此操作时,我得到的都是 2 位有效数字,并且想知道是否需要导入其他内容或在我的环境中设置某些内容或什么。看看这个:

>>> import time
>>> print time.time()
1326459121.68

我的第二个问题与 setitimer 有关,根据文档,它会发出警报,并且时间可以指定为 float 。听起来正是我想要的。其实根据这个——python timer mystery它看起来很容易使用。但是,当我复制该示例时,我得到了以下结果:

[root@poker python]# ./signal.py
Traceback (most recent call last):
  File "./signal.py", line 10, in ?
    signal.setitimer(signal.ITIMER_REAL, 2, 2)
AttributeError: 'module' object has no attribute 'setitimer'

也许我的问题部分在于,作为一个新的 python 用户,我仍然不是“Python 爱好者”,也许我不明白它试图告诉我的错误消息是什么。它是否提示找不到 signal.setitimer 或者我传递的属性有问题?我想知道它是否无法解析 signal.ITIMER_REAL,因此尝试用 0 调用它,看看会发生什么,现在它告诉我:

[root@poker python]# ./signal.py
Traceback (most recent call last):
  File "./signal.py", line 10, in ?
    signal.setitimer(0, 2, 2)
AttributeError: 'module' object has no attribute 'setitimer'

所以我必须相信是 signal.setitmer 本身有问题。

啊哈!我刚刚通过在具有较新版本的 python 的虚拟机上尝试这个来解决这个问题,它工作得很好。看起来 setitimer 不适用于我的 python 版本,但我如何从错误消息中看出?不是应该说模块没有方法吗?将缺少的方法称为属性非常令人困惑。

也许这只是学习曲线的一部分。无论如何,我想我应该把第二个问题保留在这里,这样其他人可能会受益,但我仍然对无法从 time.time() 获得高结果时间感到困惑,即使在这是较新版本的 python。

最佳答案

  • time.time() 返回更多数字,但 repr 截断为 2。

    >>> import time
    >>> time.time()
    1326460396.626451
    >>> print time.time()
    1326460422.68
    
  • 无法找到 setitimer 的问题很简单,因为您已将 python 脚本命名为“signal.py”,当您在脚本中“导入信号”时,您实际上是在导入脚本 - - 不是信号模块。只需将其重命名为其他名称即可。

关于python - Linux系统上Python的高分辨率时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850934/

相关文章:

python - 如何用 Python 减去列表中的所有项目?

Python 在列表中查找字符串

python - 在 Python 中解析 JSON 对象时遇到问题

python - Django 如何使用 django.contrib.auth 添加注销成功消息?

Python 不会在简单的 "if"语句中分配正确的值

python - 如何在 MySQLDB API for Python 中使用 num_rows() 函数?

python - AWS lambda 内存使用与 python 代码中的临时文件

Python:Lambda 函数

Python 参数解析 : Preformatted help text?

Python。 SQL Alchemy 未实现错误 : Operator 'getitem' is not supported on this expression