簡體   English   中英

os.rename()適用於Mac中打開的文件。 有什么選擇?

[英]os.rename() works on open files in Mac. what is the alternative?

我需要Python中的一種機制,通過該機制,我可以檢測文件是否被其他應用程序打開。 對於Windows,一個對我有用的解決方案是嘗試重命名該文件。 如果文件仍被其他應用程序打開,則Windows不允許您重命名該文件。

不幸的是,這在Mac上不起作用。 Mac OS X允許您在其他應用程序打開文件時重命名該文件。 這似乎是故意內置在系統中的有用功能(請參閱“ 重命名打開的文件 ”)。

什么是Mac OS X的替代解決方案,以便我可以確定是否有任何應用程序正在保存文件?

嘗試os.openO_EXLOCK標志。

這可能不是一個通用的解決方案,但它應可在Unix之類的系統(包括Mac)上運行。

沒有普遍的解決方案。 如果您可以控制使用該文件的其他應用程序,則可以使用某種鎖定文件。 但是,如果你只是想知道如果任何 applpication有一個開放的文件句柄到一些文件,沒有獨立於平台的解決方案-無論是在Python或任何其他語言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM