Python Base64打印问题

时间:2010-07-27 18:44:59

标签: python string

我有一个base64编码的字符串

当我以这种方式解码字符串时:

>>> import base64
>>> base64.b64decode("XH13fXM=")
'\\}w}s'

输出正常。

但是当我像这样使用它时:

>>> d = base64.b64decode("XH13fXM=")
>>> print d
\}w}s

缺少某些字符

有人可以提供建议吗?

先谢谢你。

2 个答案:

答案 0 :(得分:3)

这只是一个介绍问题:

>>> '\\}w}s'
'\\}w}s'
>>> print(_, len(_))
\}w}s 5

此字符串有5个字符。在代码中使用它时,您需要转义反斜杠,或使用原始字符串文字:

>>> r'\}w}s'
'\\}w}s'
>>> r'\}w}s' == '\\}w}s'
True

答案 1 :(得分:1)

当您print字符串时,输出字符串中的字符。当交互式shell显示最后一个语句的值时,它会打印字符串的__repr__,而不是字符串本身。这就是为什么它周围有单引号,你的反斜杠已被转义。

第二个示例中没有丢失任何字符,这些是字符串中的5个字符。第一个示例添加了字符,使输出成为合法的Python字符串文字。

如果要使用print语句并使输出看起来像第一个示例,请使用:

print repr(d)