八进制文件权限中的Python设置位

问题描述 投票:-1回答:1

我有一个八进制表示Linux文件权限。权限当前为I.E 0o640,我想将组位设置为6(即0o660)。我看到我可以将位设置在第n位here,但是我得到的结果很特殊,我想这是因为八进制表示。

我尝试过:

perm = 0o640
# Set the bit in the 2nd place (index 1) to 6. 
new_perm = perm | (6<<1)
# new_perm is now 0o634 (wanted 0o660).

我猜我做错了...

我还想知道在使用文件权限时在Python中使用八进制代替常规整数有什么好处。

谢谢!

python octal
1个回答
2
投票

<<移位数。对于您想要的答案,应将0o600移位3

perm = 0o600
new_perm = perm | (6<<3)
print(new_perm == 0o660)

输出:True

© www.soinside.com 2019 - 2024. All rights reserved.