import portalocker
f = open(path, 'a+', encoding="utf-8")
portalocker.lock(f, portalocker.LOCK_EX) # 加锁
f.writelines(dict_data) # 写入
f.close() # 文件关闭自动解锁
不需要fcntl,其不太支持win,在linux效果良好
用import portalocker 即可 方便好用
如果用fcntl,参考如下:
No module named 'fcntl'_AI视觉网奇的博客-优快云博客
python windows 下设置文件锁、多线程 - PythonTechWorld
python文件加锁_SHOUGOUGOU的博客-优快云博客_python 文件锁
python文件锁_Destiny宿命的博客-优快云博客_python 文件锁
参考文献:
https://www.youkuaiyun.com/tags/MtTacgxsODEyODQtYmxvZwO0O0OO0O0O.html
python - fcntl substitute on Windows - Stack Overflow
python利用文件锁,同时只允许一个实例运行 | simpledao