如何在Python 2&中编写八进制值3

时间:2018-05-15 08:03:42

标签: python

我需要用Python 2和3兼容的方式编写0644(0o644)。怎么做?我唯一的想法是从字符串解析或转换为十六进制或十进制。这不是人类可读的。我不介意速度慢,只需要一次。

2 个答案:

答案 0 :(得分:6)

0o644与python2和python3

兼容

答案 1 :(得分:5)

很老的python 2版本(< 2.6)不接受0o644中的八进制前缀。

如果确实需要符合python 2.5或更早版本,则可以使用int解析八进制字符串

int('644',8)

请注意,兼容性技巧会抓住ImportErrorNameError,......例外情况不会在这里工作,因为您无法抓住SyntaxError,解析器也不会发生的事情:

# that doesn't work
try:
    x = 0644   # either crashes here
except SyntaxError:
    x = 0o644  # or here
# that doesn't work