python - 如何锁定文件以防止操作系统中其他应用程序的写操作?
问题描述
我有一个文件。我的应用程序必须打开它并保护它免受我操作系统中其他应用程序的写入。
有可能做这样的事情吗?我试过 fcntl.flock() 但似乎这个锁只适用于我的应用程序。文本编辑器等其他程序可以毫无问题地写入文件。
测试示例
#!/usr/bin/env python3
import time
import fcntl
with open('./somefile.txt', 'r') as f:
# accquire lock
fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
# some long running operation
# file should be protected from writes
# of other programs on this computer
time.sleep(20)
# release lock
fcntl.flock(f, fcntl.LOCK_UN)
我如何为系统中的每个应用程序锁定文件,除了我的?
解决方案
推荐阅读
- elasticsearch - Kibana Windows zip 分发解压时间太长
- javascript - getElementsByClassName 的索引未定义,但不是整个对象
- com - 本地服务器 COM 中的 IConnectionPoint 事件
- xamarin.forms - Xamarin 表单聊天实现
- python - 如何多次替换 Pandas Column 中的值?
- centos - CentOS 7 - 正确添加本地包到 yum 仓库
- c# - 从 DateTime.Now.Date 中删除尾随零
- powershell - Sitecore Powershell 报告不返回任何结果
- javascript - 如何让角度前端等待快速 REST-Call 响应
- laravel - 在 Laravel Schedule Job 中使用配置文件