【问题标题】:Is it possible to monitor every file creation on a Windows drive?是否可以监视 Windows 驱动器上的每个文件创建?
【发布时间】:2012-05-15 12:03:09
【问题描述】:

我正在用 Python 编写一个程序,用于存储系统上每个文件的信息。安装后,它将遍历每个文件,但之后我想在创建新文件或移动文件时更新它。例如,在 Dropbox 服务中,每当我将文件复制到我的 Dropbox 目录时,它会立即注意到并将其上传到他们的服务器。

有没有办法在 Python 中做到这一点而无需轮询?我正在考虑创建文件时触发的某种事件侦听器。

【问题讨论】:

标签: python windows directory


【解决方案1】:

尝试以下之一:

我认为第一个更易于使用。使用示例(来自其网站):

import watcher
w = watcher.Watcher(dir, callback)
w.flags = watcher.FILE_NOTIFY_CHANGE_FILE_NAME
w.start()

watcher是封装系统API的模块,在MSDN上有描述:

http://msdn.microsoft.com/en-us/library/aa365465(v=vs.85).aspx

所以,标志watcher.FILE_NOTIFY_CHANGE_FILE_NAME 表示您将收到以下通知:

监视目录或子树中的任何文件名更改都会导致更改通知等待操作返回。更改包括重命名、创建或删除文件。

【讨论】:

  • 如果您可以总结链接中的信息并解释为什么您认为 OP 应该尝试您的建议之一,您的答案会好得多。
  • 我认为看门狗比看门狗要好得多,因为它是跨平台的。虽然目前可能只需要 Windows 支持,但减少对 Windows 的依赖可能会在以后节省大量工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 2012-03-30
相关资源
最近更新 更多