>>> print(bites)
b'Hello \n my \n name \n is \n foo'
>>> a = bites.__str__()
>>> a # this is a string with newlines scaped
"b'Hello \\n my \\n name \\n is \\n foo'"
>>> isinstance(a, str)
True
>>> isinstance(bites, bytes)
True
如果要打印带有换行符的字节,最好的替代方法是将其转换为字符串
>>> a = bites.decode('utf-8')
>>> isinstance(a, str)
True
>>> a
'Hello \n my \n name \n is \n foo'
>>> print(a)
Hello
my
name
is
foo
这是因为
bytes
的默认方法__str__
方法的实现方式是将0x0A(换行符在ASCII中由0x0A编码)打印为\n
如果希望它作为换行符打印,可以通过以下方式实现自己的
bytes
类:那么如果你{};它给了你一条新的路线
您可能正在查找前缀为
r
的“原始字符串”bytes
对象与str
对象不同print
方法的行为将因传递给它的对象而异,因为它从对象调用__str__
方法。因此,对于bytes
对象,它打印字符串而不转换特殊字符,如换行符到实际换行符如果要打印带有换行符的字节,最好的替代方法是将其转换为字符串
相关问题 更多 >
编程相关推荐