我有一个字节字面量,我将它转换为一个字符串:
hi = str(b'h\ni')没有问题。它的类型是str
print(type(hi)) # <class 'str'>当我打印它时,它打印为字节字面量。这对我来说很奇怪,因为我认为我已经将字节字面量转换为字符串:
print(hi) # b'hi'如果我将它转换为一个字符串,那么我应该能够对\n进行拆分
print(hi.split("\n")) # ["b'h\\ni'"]这很奇怪,我期望print(hi.split("\n"))返回一个包含字符串h和字符串i的列表。
在将hi转换为字符串后,是否有可能将其恢复为正常的、可打印的、可拆分的字符串?
发布于 2020-02-13 05:38:34
str得到一个友好的、人类可读的对象表示。在本例中,它是bytes对象的一个可读形式。你想解码而不是
>>> hi = b'h\ni'.decode('ascii')
>>> hi
'h\ni'
>>> type(hi)
<class 'str'>发布于 2020-02-13 05:38:59
你的第一行是错误的一步。您需要将bytes解码为str
bi = b'h\ni'
sbi = bi.decode()
print(sbi, len(sbi))
print(sbi.split("\n"))输出:
h
i 3
['h', 'i']https://stackoverflow.com/questions/60197174
复制相似问题