尝试使用 FileLock、Python 写入文件时权限被拒绝
Posted
技术标签:
【中文标题】尝试使用 FileLock、Python 写入文件时权限被拒绝【英文标题】:Permission denied when trying to write a file with FileLock, Python 【发布时间】:2020-11-11 19:18:44 【问题描述】:我正在尝试编写一个二进制文件并锁定其他进程的访问权限,直到该文件完全写入磁盘。我正在使用 Windows 操作系统。有趣的是,如果我编写小文件(~1KB),代码可以正常工作,但是当我尝试编写更大的文件时,Python 会引发错误:
PermissionError: [Errno 13] 权限被拒绝。
with open(full_file_name, "wb") as f:
lock = FileLock(full_file_name)
with lock:
f.write(bytearray(array))
【问题讨论】:
【参考方案1】:你应该使用“~.lock”文件来锁定文件。
lock = FileLock(full_file_name + ".lock")
with lock:
with open(full_file_name, "wb") as f:
f.write(bytearray(array))
请详细查看 PyPi 官方文档的示例代码: https://pypi.org/project/filelock/
【讨论】:
谢谢。我错过了文档中的这个 .lock。以上是关于尝试使用 FileLock、Python 写入文件时权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
如何将单个 python 文件(文件锁)集成到带有 specfile 的 pyinstaller?