pathlib.Path.chmod(mode)中模式的解释

Explanation on mode in pathlib.Path.chmod(mode)

请问如何在pathlib.Path.chmod(mode)中定义模式。我没有在 python 3.6 文档中找到任何关于如何定义模式的解释或解释链接。例如

>>> p = Path( 'filename.ext' )
>>> p.stat().st_mode
33204

这五个数字单独或一起是什么意思?我想将值更改为,以便 Owner 具有执行权限。如何计算出用于模式的值?

备选方案:

感谢@falsetru 的回答和评论。另外,我想分享一种非数学方法来找到可以提交给 pathlib.Path.chmod(mode) 命令的所需权限级别的 "mode value"。

步骤如下:

  1. 确定您想要的文件权限级别。
  2. 使用文件管理器(例如 nautilus)select 文件,然后右键单击它,单击 "Properties",然后左键单击 "Permission" 选项卡。您可以在此处为文件设置所需的权限级别。
  3. 接下来,从 Python 解释器,提交上述命令。它将 return 对应您想要的权限级别的模式值。然后您可以在 pathlib.Path.chmod(mode) 命令中使用它。

如果你按照link(os.chmod),你就会知道每一位的含义。

将模式值转换为八进制表示,阅读起来会更容易:

>>> oct(33204)
'0o100664'
  • 常规文件:0o100000(33204 & S_IFREG -> 非零或 S_ISREG(33204) -> 真)S_IFREG, S_ISREG
  • 所有者可读写:0o000600 (rw-)
  • 按组读写:0o000060 (rw-)
  • 其他人可读:0o000004 (r--)

更新:

stat.filemode 将数字转换为人类可读的格式:

>>> stat.filemode(33204)
'-rw-rw-r--'