【问题标题】:Python and win32 API - using a C filePython 和 win32 API - 使用 C 文件
【发布时间】:2010-10-26 22:25:17
【问题描述】:

ActiveState Python 附带了一个 win32api 模块。我需要实现一些递归地监视目录以查找文件更改的东西。实际上,在使用 C 的 MSDN 库中有 an example。我不知道 win32api 绑定是否足以完成这样的事情。

我可以将它导入 Python 项目吗?因为在 C 中编写文件更改监视器本身并在 Python 中处理结果可能更容易。问题是:我如何使它们相互交互。

【问题讨论】:

  • 用 Python 编写目录观察器会容易得多。它基本上是三四行:os.walk,检查你所看到的与你上次的一些存储列表。
  • @katrielalex 我认为他想要像inotify这样的内核级别的东西
  • @katrielalex:@user59300:是的,但是使用 Windows 原生事件系统更好。它类似于在 Linux 上使用的 pyinotify。请参阅下面的链接。
  • @user59300:Tim Golden 的例子就是你要找的。​​span>

标签: c++ python winapi


【解决方案1】:

为什么不在这里尝试一些 python win32 示例。它使用 pywin32 做你想做的事。

您提到的链接到 MSDN 的“C”代码使用 FindFirstChangeNotification。 Tim Golden 的示例通过 python win32 绑定使用相同的方法。我想这就是你想要的。

所有的windows API都是公开的,可以通过pywin32使用。

【讨论】:

  • 请注意,该页面所说的 ReadDirectoryChangesW 阻塞,因此您无法退出循环,这不是 Win32 API 的限制。不确定是否可以在 python 中进行重叠 I/O。
  • 你对 Twisted 有什么想法 - 听起来很有趣 ;)
【解决方案2】:

阅读文档并亲自尝试一下。 win32file.FindFirstChangeNotification等都在那里工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多