我正在编写一个简单的跨平台文件版本跟踪程序,该程序旨在使用给定的应用程序打开单个临时文件,监视修改,并在处理完成后停止监视并删除该文件。< / p>
到目前为止,我不得不深入研究Windows的注册表项和Linux的桌面项,以找到这些应用程序,通过subprocess.Popen
运行它们,然后使用watchdog
库监视修改。后来我意识到,不同的应用程序会使用不同的策略来打开/编辑文件,因为有些应用程序会锁定文件(使其保持打开状态,例如对于Microsoft Word),而其他应用程序只是将其复制到内存中并立即关闭文件(例如VSCode或gedit)。我现在正努力寻找的是找到一种通用的或至少可行的Python编码方式来处理不同OS上的不同应用。
检测收视结束的最有效方法是什么?
我应该使它至少可以可靠地处理更流行的应用程序吗?
操作系统可以帮助我吗? (我检查了lsof
不会在gedit
中显示打开的文件,并且我认为pid
返回的Popen
并不总是有用的,因为在其中打开文件的应用程序标签页(而不是窗口)保持打开状态。)