Python os.rename()适用于Mac中打开的文件。替代方案是什么?

Python os.rename()适用于Mac中打开的文件。替代方案是什么?,python,macos,Python,Macos,我需要Python中的一种机制,使用它我可以检测文件是否被其他应用程序打开。对于Windows,一个对我有效的解决方案是尝试重命名该文件。如果文件仍由其他应用程序打开,Windows不允许重命名该文件 不幸的是,这在Mac电脑上不起作用。Mac OS X允许您在文件被其他应用程序打开时重命名文件。它似乎是特意内置到系统中的有用功能(请参见“”) Mac OS X的替代解决方案是什么,这样我就可以确定是否有任何应用程序保存了文件 尝试使用O\u EXLOCK标志打开 这可能不是一个通用的解决方案,

我需要Python中的一种机制,使用它我可以检测文件是否被其他应用程序打开。对于Windows,一个对我有效的解决方案是尝试重命名该文件。如果文件仍由其他应用程序打开,Windows不允许重命名该文件

不幸的是,这在Mac电脑上不起作用。Mac OS X允许您在文件被其他应用程序打开时重命名文件。它似乎是特意内置到系统中的有用功能(请参见“”)


Mac OS X的替代解决方案是什么,这样我就可以确定是否有任何应用程序保存了文件

尝试使用
O\u EXLOCK
标志打开


这可能不是一个通用的解决方案,但它应该适用于类似Unix的系统,包括Mac。

尝试
os。使用
O_EXLOCK
标志打开


这可能不是一个通用的解决方案,但它应该适用于类似Unix的系统,包括Mac。

这个问题没有通用的解决方案。如果您可以控制使用该文件的其他应用程序,则可以使用某种类型的锁定文件。但是,如果您只想知道任何applpication是否对某个文件有一个开放的文件句柄,那么就没有平台无关的解决方案——不管是用Python还是用任何其他语言。

这个问题没有通用的解决方案。如果您可以控制使用该文件的其他应用程序,则可以使用某种类型的锁定文件。但是,如果您只想知道任何applpication是否对某个文件具有开放的文件句柄,那么就没有平台无关的解决方案——无论是Python还是其他语言。

仅供参考,当您谈论苹果品牌的计算机时,它是Mac,而不是Mac。MAC是首字母缩略词,意思是“对不起,杰夫”。请注意,当你谈论苹果品牌的电脑时,它是Mac,而不是Mac。MAC是首字母缩略词,意思是“对不起,杰夫”。以后会注意的。它只在BSD衍生产品上起作用——例如,它在Linux上不可用。是的,在Linux上你需要运行
open
,然后运行
flock
。我不知道
O_EXLOCK
有什么作用,但是
flock
只会确保没有其他进程同时持有锁。它不能确保没有其他进程持有打开的文件句柄。它只适用于BSD衍生产品——例如,它在Linux上不可用。是的,在Linux上,您需要运行
open
,然后运行
flock
。我不知道
O_EXLOCK
的功能,但是
flock
只会确保没有其他进程同时持有锁。它不能确保没有其他进程持有打开的文件句柄。如果可以提供特定于Mac的内容,那就好了。我只需要在Windows和Mac上运行这个程序。如果能提供Mac特定的东西,那就好了。我只需要在Windows和Mac上运行此程序。