【发布时间】:2018-04-04 15:47:10
【问题描述】:
由于未知的原因,我是需要以八进制格式显示才能使用的元数据的消费者。我试图弄清楚如何将它表示为八进制。示例:
x = "\n)\n\022foobar"
print x
)
foobar
print repr(x)
'\n)\n\x12foobar'
我如何让 x 以八进制编码的方式打印它的分配方式?
【问题讨论】:
标签: python string literals octal
由于未知的原因,我是需要以八进制格式显示才能使用的元数据的消费者。我试图弄清楚如何将它表示为八进制。示例:
x = "\n)\n\022foobar"
print x
)
foobar
print repr(x)
'\n)\n\x12foobar'
我如何让 x 以八进制编码的方式打印它的分配方式?
【问题讨论】:
标签: python string literals octal
你不能;这种代表性就消失了。如果要输出“\022”,则需要自己处理,或者需要存储"\\022"。
【讨论】:
x时分不清x = 0o22和x = 34;它们都是(在字节码级别,在编译阶段创建)相同的语句,文字的替代形式被压缩成单个实际值,不知道实际创建它的文字是什么。
str.__repr__()。
repr(x) 而不是您所看到的 x),但 Python 不直接提供完整的可调整性说输出字符串时将使用几种转义形式中的哪一种;它所关心的是它输出一个正确的。你需要手动格式化字符串以获得你想要的结果,重新实现很多 Python 的逻辑来做到这一点。真正的问题是为什么需要这种特定的输出格式;很有可能你做错了什么,或者以错误的方式。