Sun*_*ear 3 python unix linux pathlib ubuntu-18.04
我可以知道如何在pathlib.Path.chmod(mode) 中定义模式。我在 python 3.6 文档中没有找到关于如何定义模式的任何解释或解释链接。例如
>>> p = Path( 'filename.ext' )
>>> p.stat().st_mode
33204
Run Code Online (Sandbox Code Playgroud)
这五个数字单独或一起的含义是什么?我想将值更改为,以便所有者具有执行权限。如何计算用于模式的值?
替代解决方案:
我要感谢@falsetru 的回答和评论。此外,我喜欢分享一种非数学方法来查找可以提交给pathlib.Path.chmod(mode)命令的所需权限级别的“模式值” 。
以下是步骤:
pathlib.Path.chmod(mode)命令中使用它。如果您按照链接 ( os.chmod),您将了解每个位的含义。
通过将模式值转换为八进制表示,它会更容易阅读:
>>> oct(33204)
'0o100664'
Run Code Online (Sandbox Code Playgroud)
33204 & S_IFREG-> 非零 OR S_ISREG(33204)-> True) S_IFREG,S_ISREG更新:
stat.filemode 将数字转换为人类可读的格式:
>>> stat.filemode(33204)
'-rw-rw-r--'
Run Code Online (Sandbox Code Playgroud)