我想檢測文件是否被鎖定,在Unix上使用python。可以刪除文件,假設它有助於檢測文件是否被鎖定。檢測並刪除python中的鎖定文件
該文件最初可能已由另一個進程獨佔打開。文檔似乎表明,如果文件被鎖定,os.unlink不一定會返回錯誤。
想法?
我想檢測文件是否被鎖定,在Unix上使用python。可以刪除文件,假設它有助於檢測文件是否被鎖定。檢測並刪除python中的鎖定文件
該文件最初可能已由另一個進程獨佔打開。文檔似乎表明,如果文件被鎖定,os.unlink不一定會返回錯誤。
想法?
檢查文件是否被鎖定的最好方法是嘗試鎖定它。 fcntl module將在Python中執行此操作,例如
fcntl.lockf(fileobj.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
這將引發IOError異常,如果該文件已被鎖定;如果沒有,你可以調用
fcntl.lockf(fileobj.fileno(), fcntl.LOCK_UN)
要再次解鎖。
請注意,與Windows不同,打開文件進行寫入並不會自動爲您提供Unix中的獨佔鎖定。另請注意,fcntl模塊在Windows上不可用;你需要使用os.open,這是一個不太友好但更便攜的界面(可能需要重新打開文件)。