【问题标题】:Getting issue while monitoring the .docx file changes监控 .docx 文件更改时出现问题
【发布时间】:2013-09-25 12:50:42
【问题描述】:

我正在尝试使用 python 代码监控 .docx 文件,如下所示

    hDir = win32file.CreateFile (
  dirPath,
  FILE_LIST_DIRECTORY,
  win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE,
  None,
  win32con.OPEN_EXISTING,
  win32con.FILE_FLAG_BACKUP_SEMANTICS,
  None
)

while 1:
    # Wait for a change to occur
    results = win32file.ReadDirectoryChangesW (
                                               hDir,
                                               1024,
                                               False,
                                               win32con.FILE_NOTIFY_CHANGE_LAST_WRITE,
                                               None,
                                               None
                                               )

当我试图捕获对文件所做的更改时,文件名将与 ms word 文档的临时文件名一起出现。如何在 python 中捕获这些临时文件更改。

【问题讨论】:

  • WatchDog 可以为您做到这一点:pypi.python.org/pypi/watchdog
  • 这个看门狗应该在哪个文件上运行?我将打开不同的word文档并对其进行更改。实际上,当我在监控 word 文档文件时,会得到一些临时文件路径。
  • 看门狗应该在您跟踪的整个文件夹上运行。

标签: python docx file-monitoring


【解决方案1】:

这适用于以下代码。如果我们可以监控 FILE_NOTIFY_CHANGE_SECURITY 事件,那么我们也可以跟踪所有临时文件更改。

 readFlags = win32con.FILE_NOTIFY_CHANGE_FILE_NAME  | \
        win32con.FILE_NOTIFY_CHANGE_DIR_NAME   | \
        win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES | \
        win32con.FILE_NOTIFY_CHANGE_SIZE       | \
        win32con.FILE_NOTIFY_CHANGE_LAST_WRITE | \
        win32con.FILE_NOTIFY_CHANGE_SECURITY
# Wait for new data and call ProcessNewData for each new chunk that's written
while 1:
    # Wait for a change to occur
    results = win32file.ReadDirectoryChangesW (
                                               hDir,
                                               1024,
                                               False,
                                               readFlags,
                                               None
                                               )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2013-02-03
    • 2016-01-25
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    相关资源
    最近更新 更多