如何监视目录的变化?

12 浏览
0 Comments

如何监视目录的变化?

在Python核心中找不到任何可以做到这一点的内容。有人能推荐一个库或者“大杂烩”来完成这个吗?理想情况下,我希望它是可移植的,但如果仅限于Unix(我的服务器),也可以接受。

0
0 Comments

在Linux上,你可能会对pyinotify感兴趣。其他相关的库包括:gamin、python-fam接口和watchdog。据我个人观点,inotify_simple比pyinotify更简单易用。

0
0 Comments

如何监视目录中的文件更改?

问题的原因:我正在寻找一个监视文件修改的Python包。无意间发现了pywatch,它可能正是你在寻找的东西。它非常简单,但能满足我的需求(解决了pyScss缺乏监视器的问题)。

解决方法:pywatch是一个Python包,可以用来监视目录中的文件修改。你可以在PyPI网站上找到它的页面(http://pypi.python.org/pypi/pywatch)。使用pywatch非常简单,只需按照以下步骤操作:

1. 安装pywatch:可以使用pip命令来安装pywatch包。在命令行中运行以下命令:

pip install pywatch

2. 导入pywatch:在你的Python脚本中,导入pywatch包以使用它的功能。在脚本的开头添加以下代码:

import pywatch

3. 监视目录:使用pywatch的方法来监视目录中的文件更改。以下是一个简单的示例:

def callback(event):
    print(f"File {event.src_path} has been {event.event_type}")
watcher = pywatch.Observer()
watcher.schedule(callback, '/path/to/directory', recursive=True)
watcher.start()

在上述示例中,我们定义了一个回调函数(callback),当目录中的文件发生更改时,该函数将被调用。你可以根据需要自定义回调函数的功能。然后,我们创建了一个pywatch.Observer对象,并使用schedule方法来设置回调函数和要监视的目录。最后,使用start方法启动监视器。

通过这些简单的步骤,你可以使用pywatch包来监视目录中的文件更改。这对于需要实时跟踪文件修改的应用程序非常有用,例如自动编译器、自动化测试工具等。

0
0 Comments

问题的出现原因是因为没有一种通用的方法来监视目录的变化。这需要与操作系统的底层进行交互,因此不同操作系统可能有不同的解决方案。

对于Linux操作系统,有一个名为pyinotify的解决方案。pyinotify是Linux inotify内核文件系统通知子系统的一个绑定。它能够很好地工作。一些开发者仍然使用Windows操作系统,但我并不指望他们使用或在这个模块上工作。

因此,解决这个问题的方法是使用pyinotify来监视Linux操作系统上目录的变化。对于其他操作系统,可能需要寻找其他适用的解决方案。

0