最近我正在使用Python模块操作系统,当我试图更改文件的权限时,没有得到预期的结果。例如,我打算将权限更改为rw-rw-r–
os.chmod(“/tmp/test\u文件”,664)
所有权权限实际上是-w–wx–(230)
--w--wx--1 ag ag 0 Mar 25 05:45测试文件
但是,如果我将代码中的664更改为0664,则结果正是我所需要的,例如
os.chmod(“/tmp/test\u文件”,0664)
结果是:
-rw-rw-r--1 ag 0 Mar 25 05:55测试文件
有人能解释为什么前导0对于得到正确的结果如此重要吗
在另一个论坛上找到这个
如果你想知道为什么前导零很重要,那是因为
权限设置为八进制整数,Python自动
将前导为零的任何整数视为八进制。所以os.chmod(“文件”,
484)(十进制)将给出相同的结果
您正在做的是传递664,它的八进制是1230
在你的情况下,你需要
os.chmod(“/tmp/test\u文件”,436)
[更新]注意,对于Python 3,前缀为0o(零oh)。例如,0o666