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"。
步骤如下:
- 确定您想要的文件权限级别。
- 使用文件管理器(例如 nautilus)select 文件,然后右键单击它,单击 "Properties",然后左键单击 "Permission" 选项卡。您可以在此处为文件设置所需的权限级别。
- 接下来,从 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--'
请问如何在pathlib.Path.chmod(mode)中定义模式。我没有在 python 3.6 文档中找到任何关于如何定义模式的解释或解释链接。例如
>>> p = Path( 'filename.ext' )
>>> p.stat().st_mode
33204
这五个数字单独或一起是什么意思?我想将值更改为,以便 Owner 具有执行权限。如何计算出用于模式的值?
备选方案:
感谢@falsetru 的回答和评论。另外,我想分享一种非数学方法来找到可以提交给 pathlib.Path.chmod(mode)
命令的所需权限级别的 "mode value"。
步骤如下:
- 确定您想要的文件权限级别。
- 使用文件管理器(例如 nautilus)select 文件,然后右键单击它,单击 "Properties",然后左键单击 "Permission" 选项卡。您可以在此处为文件设置所需的权限级别。
- 接下来,从 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--'