gpt4 book ai didi

Python 模块 os.chmod(file, 664) 不会将权限更改为 rw-rw-r-- 但 -w--wx----

转载 作者:IT老高 更新时间:2023-10-28 21:08:43 29 4
gpt4 key购买 nike

最近我在使用Python模块os,当我试图改变一个文件的权限时,我没有得到预期的结果。比如我打算把权限改成rw-rw-r--,

os.chmod("/tmp/test_file", 664)

所有权权限其实是-w--wx--- (230)

--w--wx--- 1 ag ag 0 Mar 25 05:45 test_file

但是,如果我在代码中将 664 更改为 0664,结果正是我所需要的,例如

os.chmod("/tmp/test_file", 0664)

结果是:

-rw-rw-r-- 1 ag ag 0 Mar 25 05:55 test_file

谁能帮助解释为什么前导 0 对获得正确结果如此重要?

最佳答案

different forum 上找到这个

If you're wondering why that leading zero is important, it's because permissions are set as an octal integer, and Python automagically treats any integer with a leading zero as octal. So os.chmod("file", 484) (in decimal) would give the same result.

你正在做的是传递 664 八进制是 1230

在你的情况下,你需要

os.chmod("/tmp/test_file", 436)

[更新] 注意,对于 Python 3,你的前缀是 0o(零哦)。例如,0o666

关于Python 模块 os.chmod(file, 664) 不会将权限更改为 rw-rw-r-- 但 -w--wx----,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607903/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com