我想检测文件是否被锁定,在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,这是一个不太友好但更便携的界面(可能需要重新打开文件)。