我有一个文件xxx.txt
,其他Python文件可以访问该文件。当script_1
即将写入xxx.txt
时,它应该锁定文件,而script_2
应该等待文件被script_1
释放。
我尝试使用此代码,但未锁定文件。 script_2
能够写入文件。
import fcntl, os, signal, time
os.fork()
class TimeoutException(Exception): pass
def signal_handler(signum, frame):
raise TimeoutException()
f = os.open("xxx.txt", os.O_RDWR|os.O_CREAT)
fcntl.flock(f, fcntl.LOCK_EX)
time.sleep(20)
os.write(f, bytes("oook_0", "utf-8"))
fcntl.flock(f, fcntl.LOCK_UN)
os.close(f)
答案 0 :(得分:2)
答案 1 :(得分:-1)
解决了
from filelock import FileLock
with FileLock("lock"):
with open('lock', mode='w') as file:
file.write('oook_1')