python 2进制转str
时间: 2023-08-09 08:05:42 浏览: 59
在 Python 中,可以使用 `decode` 方法将二进制数据转换为字符串。方法的语法如下:
```python
s = b.decode(encoding)
```
其中,`b` 表示要转换的二进制数据,`encoding` 表示编码格式,常见的编码格式有 `utf-8`、`gbk`、`gb2312` 等。例如,将二进制数据 `b'\xe4\xbd\xa0\xe5\xa5\xbd'` 转换为 UTF-8 编码的字符串,可以使用以下代码:
```python
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
s = b.decode('utf-8')
print(s)
```
输出结果为:
```
你好
```
注意,在 Python 2.x 中,字符串默认采用 ASCII 编码,因此需要使用 `decode` 方法将二进制数据转换为字符串。而在 Python 3.x 中,字符串默认采用 UTF-8 编码,因此不需要进行转换。
相关问题
2进制转str python
可以使用Python内置的函数bin()和chr()来实现2进制转字符串的功能。具体方法如下:
1.使用bin()函数将2进制转为整数,再使用chr()函数将整数转为对应的ASCII字符。示例代码如下:
binary = "01101000 01100101 01101100 01101100 01101111" # 2进制字符串
# 将2进制字符串转为整数列表,并逐个转为对应的ASCII字符
ascii_list = [chr(int(x, 2)) for x in binary.split()]
# 将ASCII字符列表转为字符串
result = ''.join(ascii_list)
print(result) # 输出结果为:hello
2.也可以使用正则表达式来将2进制字符串转为ASCII字符,示例代码如下:
import re
binary = "01101000 01100101 01101100 01101100 01101111" # 2进制字符串
# 使用正则表达式将2进制字符串中的空格删除,并将每8位的二进制数转为对应的ASCII字符
result = re.sub(r'\s', '', binary) # 删除空格
result = re.sub(r'([01]{8})', lambda m: chr(int(m.group(1), 2)), result) # 转为ASCII字符
print(result) # 输出结果为:hello
python bytes16进制转str
可以使用 Python 的内置函数 `bytes.fromhex()` 将 16 进制字符串转换为 bytes 对象,然后再使用 `.decode()` 方法将其转换为字符串。示例代码如下:
```python
hex_str = "68656c6c6f20776f726c64"
byte_obj = bytes.fromhex(hex_str)
str_obj = byte_obj.decode('utf-8')
print(str_obj) # 输出:hello world
```
上述代码中,我们将 16 进制字符串 `"68656c6c6f20776f726c64"` 转换为 bytes 对象 `byte_obj`,然后使用 `decode()` 方法将其转换为字符串 `str_obj`。其中,`decode()` 方法的参数指定了解码字符集,这里使用的是 UTF-8 编码。