触发 inotify 事件

0 投票
2 回答
880 浏览
提问于 2025-04-16 17:17

我有一个用Python写的脚本,它使用了Pyinotify库,当文件被移动到某个地方时(也就是IN_MOVED_TO这个事件),会执行一些操作。现在我想知道,怎么用另一个Python脚本来触发这个脚本,只针对特定的文件,而不是真的把文件移动出去再移回来,最简单的方法是什么?

2 个回答

0

你可以通过简单地重命名文件来避免移动文件,这在Linux上也很类似。比如,你可以用这个命令:mv file file.sav && mv file.sav file

1

创建一个“粘合函数”。假设原来的代码是:

def some_inane_os_api(with, lots, of, arguments):
    ... your code ...

把它替换成:

def some_inane_os_api(with, lots, of, arguments):
    your_code(just, the, arguments, you need)

def your_code(...)
    ... your code ...

现在你可以从测试中调用 your_code()(这个函数的使用方式简单多了)。

假设原来的接口有一些复杂的结构。你只需要把那些结构中相关的数据复制到参数里,或者放到几个简单的辅助对象中。

这样就把你的代码和复杂的接口隔离开了,让测试和重复使用变得简单多了。

撰写回答