Windows环境下统计时间的准确性

2024-06-16 12:59:43 发布

您现在位置:Python中文网/ 问答频道 /正文

有一段(Python)代码示例来检查目录是否已更改:

import os

def watch(path, fdict):
    """Checks a directory and children for changes"""
    changed = []
    for root, dirs, files in os.walk(path):
       for f in files:
           abspath = os.path.abspath(os.path.join(root, f))
           new_mtime = os.stat(abspath).st_mtime
           if not fdict.has_key(abspath) or new_mtime > fdict[abspath]:
               changed.append(abspath)
               fdict[abspath] = new_mtime
    return fdict, changed

但是附带的unittest随机失败,除非我至少增加2秒钟的睡眠时间:

^{pr2}$

统计真的被限制在1秒以内吗?(编辑:显然如此,胖了) 是否有任何(跨平台)方法来检测更快速的变化?在


Tags: path代码inimport目录示例newfor
3条回答

看门狗: http://packages.python.org/watchdog/quickstart.html

是一个好的项目有一些多平台的变更通知。在

正确的方法是监视目录,而不是轮询更改。在

退房FindFirstChangeNotification Function
Watch a Directory for Changes是一个Python实现。在

如果目录监视不够准确,那么可能唯一的选择就是拦截文件系统调用。在

如果这是linux,我会使用inotify。显然有一个windows inotify等价物——javajnotify library实现了它——但我不知道是否有python实现

相关问题 更多 >