Skip to main content
 首页 » 编程设计

python之替换在 Python 3 中不起作用的字节

2025年05月04日22mayingbao

Python版本:3.5.2
我的代码:

a = b"\xff" 
b = a.replace(b"f", b"d") 
print(b) 

我得到了 b'\xff'。 我尝试了另一种方式。首先,我将字节转换为 str,然后替换字符串。

a = b"\xff" 
b = a.decode() 
b = b.replace("f", "d") 

但通过异常:

Traceback (most recent call last): 
  File "<input>", line 1, in <module> 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 

我不知道如何解决 python3 中的问题。 我该怎么办?

请您参考如下方法:

b'\xff' 中没有b"f"。您键入一个“f”来输入b'\xff',但这只是几种输入法中的一种;该值与例如 bytes([255]) 相同。 .replace 只替换字符串中实际存在的字节;它不知道您是如何创建字符串的。

创建字符串后,用于创建它的输入法的详细信息就消失了。你不能做你想做的事情,因为你不能做 '\t'.replace('t', 'n') 来得到 '\n'。 '\t' 不包含“t”;您只需键入“t”作为指定制表符的一种方式。