以八进制打印文字字符串python

时间:2017-04-05 00:17:58

标签: python string hex literals octal

您好我在尝试以正确的格式打印文字字符串时遇到问题。 对于初学者,我有一个带有字符串参数的对象,该参数用于元数据,如下所示:

obj {
    metadata: <str>
}

该对象作为协议响应返回,我们可以使用该对象。

print obj给出:

    metadata: "\n)\n\022foobar"

当我打印obj.metadata时,python将值视为字符串,并将转义符转换为换行符和相应的ascii值。

当我尝试的时候 print repr(obj.metadata)

"\n)\n\x12foobar"

不幸的是,python打印文字但将转义字符从八进制转换为十六进制。有没有办法我可以用八进制中的转义字符打印python文字或转换字符串,以便我可以打印在对象中的值?

感谢您的帮助

到目前为止我遇到的极其糟糕的解决方案是

print str(obj).rstrip('\"').lstrip('metadata: \"')

得到正确的答案,但我假设必须有一个更聪明的方式

TLDR:

x = "\n)\n\022foobar"
print x

)
foobar

print repr(x)
'\n)\n\x12foobar'

如何让x打印它的分配方式

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

print('\\\n)\\\n\\\022foobar') 

print(r'\n)\n\022foobar')

转义字符'\'对后跟字符的解释不同,例如\n用于换行。

双转义字符'\\'或字母'r'使对转义字符的解释无效。这与C语言类似。