问题标签 [python-watchdog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
895 浏览

python - 由于它监视的文件上的文件操作,Python 看门狗在一个永无止境的循环中完成

我正在编写一个 python 脚本,它使用看门狗来监视目录并对刚刚修改的文件执行操作。我的问题是脚本对文件执行的操作用相同的文件重新填充了看门狗的事件列表,因此脚本进入无限循环。

无论如何要监视修改过的文件,并对它们执行操作而不会再次触发看门狗?

我认为暂停观察者是执行我的 mtime 更新功能的一个想法,但是在发生这种情况时可能不会监视复制到目录的其他文件。

反正有没有让看门狗放弃文件系统上的这个功能动作?或者也许告诉看门狗放弃脚本本身所做的每一个动作?

问候,奥兹。

0 投票
1 回答
284 浏览

python - 看门狗 - on_modified 事件不会在编解码器文件更改时触发

我正在尝试编写一个程序来检测我是否插入或拔出耳机并相应地执行某些操作。我正在使用 Ubuntu 14.04,通过一些搜索,我发现耳机/耳机连接状态已写入此路径的编解码器文件 - /proc/asound/card0。包含状态信息的特定文件是 codec#0.txt。

我使用 Watchdog 库编写了一个 Python 程序,并尝试将此 codec#0 文件输出与 unplugged.txt 的初始状态进行比较。根据文件是否匹配,我想启动一个音乐播放器。

现在代码如下;我无法弄清楚为什么每次我从插孔连接/断开耳机时都不会触发 on_modified 事件。我看到上述路径中所有文件的修改日期都发生了变化,但我的程序没有打印出一条消息。

代码:

0 投票
2 回答
1459 浏览

python - 看门狗(Python 的库) - 如何在文件被修改时发送信号?

我用于检测特定文件何时被修改的类的代码:

以及应用程序本身的代码片段:

问题是当文件被修改时,我得到一个不间断的 1 流正在打印。我意识到在WatchOutForFileModifications课堂上不应该以这种方式发出/连接信号,但我不明白 API 是怎样的:http: //pythonhosted.org/watchdog/api.html#watchdog.observers.api。 EventEmitter——应该可以工作。至少我认为这是我应该用来监听文件修改的 API。

编辑

经过一些修改后的工作代码:

0 投票
1 回答
2231 浏览

python - 如何在 python 的日志库中捕获操作系统用户的用户名?

python-watchdog用来监视某些路径的更改,例如添加、删除、修改等。连同时间和消息信息,我想捕获进行更改的用户的用户名。我在看getpass,我在日志本身中寻找一个变量,但找不到任何东西。

有什么线索吗?我的看门狗代码如下

0 投票
0 回答
2912 浏览

python - 停止使用看门狗监视文件

我有这个小脚本可以用看门狗监视一个文件(test.txt)。到现在每次修改文件时我都会收到一条屏幕消息,但我只需要第一次收到通知,这意味着停止监控,有什么办法可以告诉看门狗停止它吗?

这是我的代码:

0 投票
2 回答
28387 浏览

python - PyQT 线程的最简单方法

我在 PyQt 中有一个带有函数的 GUI addImage(image_path)。很容易想象,当一个新的图像应该被添加到一个 QListWidget 时调用它。为了检测文件夹中的新图像,我使用threading.Threadwithwatchdog来检测文件夹中的文件更改,然后该线程addImage直接调用。

出于线程安全的原因,这会产生QPixmap不应在 gui 线程之外调用的警告。

使这个线程安全的最好和最简单的方法是什么?Q线程?信号/插槽?QMetaObject.invokeMethod?我只需要将字符串从线程传递到addImage.

0 投票
0 回答
534 浏览

python - 'pip install watchdog' 在 OS X 10.10.5 上失败

pip install watchdog 失败并出现以下错误:

谁能帮忙解决这个错误?

完整的错误日志在这里http://pastebin.com/D2qq9tb1

Python 版本:Python 2.7.11 |Anaconda 2.4.1 (x86_64)

之前针对 OSX 10.9 提出的错误中建议的解决方案似乎不起作用。

0 投票
0 回答
144 浏览

python - 阻塞直到目录中的文件更改

我想使用看门狗来阻止,直到目录中的文件发生更改。我正在做的是在变量为False. 但是,问题在于我无法中断睡眠。文件更改时仍有长达 1 秒的延迟中断。我怎样才能摆脱睡眠并在睡眠后继续前进?或者更一般地说,阻塞直到文件更改?这是我的代码:

0 投票
0 回答
1072 浏览

python - 为什么看门狗会抛出这个操作系统错误?

我正在尝试编写一个守护程序来监视 Python 中的目录更改,我真的可以使用一些帮助。

到目前为止,我已经尝试过 inotify 和 Watchdog。在它们的首页上运行它们的示例代码时,这两个包都引发了大量错误。谁能告诉我为什么我会收到这些错误?

这是来自https://pypi.python.org/pypi/watchdog的示例代码:

这是我运行代码时的终端输出:

0 投票
0 回答
1635 浏览

python - 实时重新加载 Kivy 模板

我试图创建一些东西来在运行时重新加载 KivyLang UI 文件(.kv 文件)。这样当我将 *.kv 文件保存在我的 IDE 上时,UI 会在窗口上更新。有点类似于这个http://livereload.com/插件的工作方式。

这是我的尝试。

修改的框架代码

我稍微修改了以下文件并添加了一点代码: https ://github.com/kivy/kivy/blob/master/kivy/core/window/window_pygame.py

新进口

新班级

新的主循环

我刚刚和一个观察员夹在中间

完整文件

window_pygame.py

问题

到目前为止,一切都很好。文件监视器工作正常,每次我修改 *.kv 文件时on_modified都会触发该函数。

但是只有当我有 1 个固定小部件时,重新加载部分才有效。当我修改 .kv 文件并添加更多小部件时,画布并没有完全清理干净,之前的小部件仍然存在。

看起来EventLoop.window.canvas.clear()还不足以清理以前的内容。

我是否在错误的方向上走得太远了?我注意到这里有类似的东西:https ://github.com/kivy/pythonar但我不想停止正在运行的应用程序并重新加载。

示例 Hello World 应用程序

hello_kivy.py

hellokivy.kv