我希望使用存储在配置文件中的文件掩码来更改文件的权限。由于 os.chmod() 需要八进制数,因此我需要将字符串转换为八进制数。例如:
'000' ==> 0000 (or 0o000 for you python 3 folks)
'644' ==> 0644 (or 0o644)
'777' ==> 0777 (or 0o777)
在显然第一次尝试创建从 0000 到 0777 的每个八进制数并将其放入字典中并与字符串版本对齐后,我想出了以下结果:
def new_oct(octal_string):
if re.match('^[0-7]+$', octal_string) is None:
raise SyntaxError(octal_string)
power = 0
base_ten_sum = 0
for digit_string in octal_string[::-1]:
base_ten_digit_value = int(digit_string) * (8 ** power)
base_ten_sum += base_ten_digit_value
power += 1
return oct(base_ten_sum)
有没有更简单的方法来做到这一点?
您是否刚刚尝试过将基数 8 指定为int
:
num = int(your_str, 8)
Example:
s = '644'
i = int(s, 8) # 420 decimal
print i == 0644 # True #Python 2.x
对于Python 3.x 做
. . .
print(i == 0o644)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)