- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到以下情况:
对此进行了一些修改,我发现在调试时它工作得很好。我在读取文件的行上设置了一个断点,从而增加了一点延迟。之后 - 文件被读取并且更改就在那里。
因此,添加 time.sleep(1)
或以其他方式延迟执行似乎可以解决问题。否则我会收到过早的 IN_CLOSE_WRITE 事件。
我想知道该事件是在提交更改并关闭文件之后触发的,还是之前触发的。 IN_CLOSE_WRITE之后似乎没有其他相关事件。同时,文档有点棘手:
use IN_CLOSE_WRITE because if emitted the all changes on the appropriate file are safely written inside the file
我提交了一份有关常见问题解答中措辞的错误报告,但与此同时,我想获得有关此事的一些额外意见。这应该发生吗? “道德上正确”的解决方法是什么?
所有这一切都发生在 Linux Mint 15 x64 上。
最佳答案
原来这个行为是not an anomaly :
As I said previously I think that the mission of inotify (and therefore as reported by Pyinotify) is to signal you when a file is closed (more precisely when it is closed by its file descriptor), but obviously the kernel uses buffers and so the file data may not be written on disk immediately. For more details see the man (2) of the close() function:
A successful close does not guarantee that the data has been successfully saved to disk, as the kernel defers writes. It is not common for a file system to flush the buffers when the stream is closed. If you need to be sure that the data is physically stored use fsync(2). (It will depend on the disk hardware at this point.)
你不能依赖的底线
IN_CLOSE_WRITE
确保您的数据已完成写入磁盘。换句话来说,这并不是一次过早的通知,而是恰逢其时;但操作系统的底层机制可以继续对该文件执行某些操作。
关于inotify - 使用 pyinotify 过早发出 IN_CLOSE_WRITE 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782050/
我刚拿到一台 iPad,就傻傻地拿到了 TexTouch 应用程序。愚蠢的是,由于 Apple 的规定,TexTouch 无法编译 Tex。它使用 Dropbox 将 .tex 文件同步到计算机。在远
我使用 pyinotify 来监控我的文件系统。问题是当我重命名目录并在重命名的目录中创建文件时,事件是从原始路径(由 event.name 引用)引发的。不知道哪里出了问题?初始化观察器时 add_
我想创建一个监视文件夹的模块。我写了一些代码: import os, pyinotify class FileWatcher: def start_watch(self, dir):
我正在使用 pyinotify(process_IN_MOVED 事件)来监视目录中出现的文件。当出现新文件时,会触发该事件,并对文件进行某种处理。问题是有时文件出现在目录中的速度比我处理它们的速度快
我一直在使用 pyinotify,我遇到了一些问题,在对文件夹进行多次更改后,它只是停止接收通知。我觉得这与两个线程正在运行有关;即通知线程和wxpython线程。 该应用程序的目的基本上是在检测到
我要 Pyinotify 观看具有子文件夹的模板目录,但我收到此错误: DIRECTORY /home/project/templates [Pyinotify ERROR] add_watch: c
可以将正则表达式与 inotify shell 命令一起使用,但不能与 pyinotify 一起使用。我可以使用正则表达式获取目录列表并将其传递给 add_watch,但是,文件夹“Do*”是动态的,
我对 asyncnotifier 的工作原理感到困惑。通知程序中到底线程化了什么?只有观察者线程吗?或者处理程序函数的每个回调都在其自己的线程上运行吗? 文档基本上没有提及该类的细节。 最佳答案 As
我知道 pyinotify.Notifier.check_events(self, timeout=None) 可能会超时 - 但我更喜欢它无限期地轮询。可以中断吗? 我正在调用 Notifier.s
我有一个 pyinotify 实例,它监视已安装的网络驱动器(使用 CIFS 安装)的 IN_WRITE_CLOSE 事件,如果服务器本身正常,它会完美地拾取系统创建的事件(sudo cp、sudo
有什么方法可以打印监视的文件修改吗?让我们举个例子:我正在监视 file.txt,Pyinotify 可以告诉我它已被修改,但它似乎无法输出发生了什么更改?我错了吗 ?如何查看我正在监视的文件发生了哪
这是一个奇怪的问题,strace 没有给我任何有用的信息。我正在使用 pyinotify 0.9.6 递归地监视目录,以便我可以将有关它的更改提交到 MySQL 数据库。问题是当我运行 pyinoti
每次修改某个文件时,我都尝试启动一个 python 脚本。准确地说,我在 Raspberry Pi 的串行端口上有一个设备,它将数据写入文本文件 (test.txt)。我已经尝试过这两种工具 - Wa
每次在某个目录中创建新文件时,我都想解析一个文件。为此,我正在尝试使用 pyinotify设置一个目录来监视 IN_CREATE 内核事件,并触发 parse() 方法。 这是模块: from pyi
我必须注意文件中当前内容的任何输入或所做的任何更改,在进行任何修改后,我需要运行位于同一文件夹中的 python 程序。 我尽力去理解,但我无法得到任何好的结果。如果有人可以帮助我解决这个问题,那将很
我正在尝试查看目录,并正在寻找文件修改。考虑使用 pyinotify。问题是,在使用 IN_MODIFY 事件检查文件更改时,如果我通过网络将一个 12 MB 的小文件复制到目录,它会触发相当多的事件
我在使用 pyinotify 时遇到问题:未调用 ProcessEvent 的方法 process_*() 代码 import sys, time, syslog from pyinotify imp
我是 python 的新手,我正在尝试使用 pygtk 将 pyinotify 与 GUI 界面结合使用。我有两个类,我的 gtk 类不做太多事情,只显示东西,还有一个处理监控的类。 当我分别运行它们
我有一个运行线程的 pyinotify 观察程序,称为一个单独的类,目前它只是在终端窗口中打印其发现,如果我希望我的脚本根据这些更改执行操作,我最好这样做: A) 使用每个通知修改数组 B)写入/tm
我正在使用 pyinotify 来监视文件夹以了解何时在其中创建文件。当创建某些文件时,我想移动它们。问题是文件一创建(很明显),我的程序就会尝试移动它,甚至在它完全写入磁盘之前。 有没有办法让 py
我是一名优秀的程序员,十分优秀!