检查 python 3 中的独占文件锁定

Check for exclusive file lock in python 3

提问人:Sc4v 提问时间:3/15/2023 更新时间:3/15/2023 访问量:96

问:

对于我的工具,我需要检查一堆文件是否可写(在触发昂贵的指令之前)。据我所知,Windows 上的文件可以是只读的,原因有两个:

  • 用户/组的权限不足
  • 应用程序独占锁定

因此,检查文件权限是不够的。我已经测试了两种不同的方法,两种方法都运行良好:os.access

通过“no op”重命名

try:
   if not os.path.exists(path): return False
   os.rename(path, path)
   return True
except:
   return False

或者打开带有追加规则的文件

try:
   if not os.path.exists(path): return False
   f = open(path, 'a')
   f.close()
   return True
except:
   return False

这两种方法都同样有效 - 对我来说看起来同样可怕。打开带有追加规则的文件会造成任何伤害吗?有没有更好的方法来检查专用锁?

Python Windows 锁定 IOSTREAM

评论

0赞 John Gordon 3/15/2023
os.rename(path, path)如果将相同的路径名视为无操作并且只是不执行任何操作而返回,我不会感到惊讶。os.rename()

答: 暂无答案