我想更改一个文件的权限,该文件的文件掩码存储在一个配置文件中。因为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
:示例:
以下是解决方案:
将八进制字符串“777”转换为十进制数字511
你担心os.chmod()?我们试试看!
它证明了python中的chmod
can accept decimal
和decimal can used as octal
!八进制就够了,因为如果你试着
然后将十进制数511转换为八进制
string
“0777”注意没有0777号,但只有10月字符串“0777”或12月数字 在python中如果你写了0777号,它会自动把0777号翻译成511号,在这个过程中不存在0777号。
摘要
相关问题 更多 >
编程相关推荐