我需要一个Python机制,我可以使用它来检测某个文件是否由其他应用程序打开。对于Windows,一个对我有用的解决方案是尝试重命名该文件。如果某个文件仍由某个其他应用程序打开,则Windows不允许您重命名该文件。
不幸的是,这在Mac上无效。 Mac OS X允许您在文件被其他应用程序打开时重命名该文件。它似乎是故意内置到系统中的有用功能(参见“Rename open files”)。
对于Mac OS X,什么可以替代解决方案,以便我可以弄清楚是否有任何应用程序正在保存文件?
答案 0 :(得分:1)
使用os.open
标记尝试O_EXLOCK
。
这可能不是一般解决方案,但它应该适用于类似Unix的系统,包括Mac。
答案 1 :(得分:0)
这个问题没有一般解决方案。如果您可以使用该文件控制其他应用程序,则可以使用某种锁定文件。但是,如果您只是想知道任何应用程序是否具有某个文件的打开文件句柄,则不存在独立于平台的解决方案 - 无论是使用Python还是使用任何其他语言。