如何在 Python 中使用 "fcntl.lockf"?



我发现了这个问题,但我不知道如何使用这个建议。我试过了

with open(fullname) as filein:
fcntl.lockf(filein, fcntl.LOCK_EX | fcntl.LOCK_NB)

with open(fullname) as filein:
fcntl.lockf(filein.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)

但两种情况下我都得到了错误

OSError: [Errno 9]文件描述符错误

我想用这个方法来检查一个文件是否被"锁定",并理想地解锁它。

尝试应用下一个代码片段:

import fcntl
with open(fullname, 'r') as filein:
try:
fcntl.flock(filein, fcntl.LOCK_EX | fcntl.LOCK_NB)
except IOError:
print(f"File {fullname} is locked.")
else:
print(f"File {fullname} is locked, but...") 
fcntl.flock(filein, fcntl.LOCK_UN)
print("now is not.")

相关内容

  • 没有找到相关文章

最新更新