我想在 Unix 上使用 python 检测文件是否被锁定。删除该文件是可以的,假设它有助于检测该文件是否被锁定。
该文件最初可能是由另一个进程独占打开的。文档似乎表明,如果文件被锁定, os.unlink 不一定会返回错误。
Ideas?
检查文件是否被锁定的最佳方法是尝试锁定它。这fcntl模块 http://docs.python.org/library/fcntl.html将在 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 http://docs.python.org/library/os.html#os.open,这是一个不太友好但更便携的界面(并且可能需要再次重新打开文件)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)