首页  > 教育解读  > python3的二进制怎么转换成文字

python3的二进制怎么转换成文字

2025-05-10 14:30:51
公共使者
公共使者已认证

公共使者为您分享以下优质知识

在Python3中,将二进制数据转换为文本主要有以下三种方法,具体选择取决于数据类型和需求:

一、使用内置函数 `int` 和 `chr`(适用于二进制字符串)

适用于以空格分隔的二进制字符串,例如 `'01001000 01100101 01101100 01101100 01101111'`。

```python

binary_string = '01001000 01100101 01101100 01101100 01101111'

text = ''.join([chr(int(b, 2)) for b in binary_string.split()])

print(text) 输出: Hello

```

二、使用 `binascii` 模块(适用于二进制数据)

适用于标准的二进制数据(如文件内容),支持十六进制转文本和二进制转十六进制。

```python

import binascii

binary_data = b'Hello'

hex_text = binascii.hexlify(binary_data).decode('utf-8')

print(hex_text) 输出: 48656c6c6f

反向转换

binary_data = binascii.unhexlify(hex_text)

print(binary_data.decode('utf-8')) 输出: Hello

```

三、使用 `decode` 方法(适用于编码后的二进制数据)

适用于以特定编码(如UTF-8)打包的二进制数据。

```python

binary_data = b'Hello, World!'

text = binary_data.decode('utf-8')

print(text) 输出: Hello, World!

```

四、使用 `struct` 模块(适用于结构化二进制数据)

适用于需要解析二进制格式(如固定长度字段)的场景。

```python

import struct

binary_data = b'hello, world!'

text = struct.unpack('s', binary_data)

print(text) 输出: hello, world!

```

五、使用 `numpy` 处理大文件(适用于二进制文件)

适用于处理大文件或需要高效读写的场景。

```python

import numpy as np

def binary_to_text(input_file, output_file):

with open(input_file, 'rb') as f:

binary_data = np.fromfile(input_file, dtype=np.uint8)

text_data = ''.join(map(chr, binary_data))

with open(output_file, 'w', encoding='utf-8') as f:

f.write(text_data)

binary_to_text('input.bin', 'output.txt')

```

以上方法可根据具体需求选择,例如处理文件时推荐使用 `decode` 或 `struct`,处理二进制字符串时可用 `int` 或 `binascii`。