Python中二进制串转换为通用字符串的实用技巧

一颗松果
一颗松果
发布时间:2026-10-13| 6人浏览过
原创

本文介绍在Python处理TXT文件时,如何将读取到的二进制串转换为通用字符串。通过str()函数转换后,需手动去除前缀'b''以解决字典索引时的KeyError问题,并探讨了中英文编码转换的差异。

一个小问题

今日进行实验时,需读取并整理包含中英文词汇的TXT文件。

Python代码默认采用UTF-8编码规则。读取文件时,每行内容呈现为二进制串,格式如下:

b'heroes\xff.....

后续处理要求操作对象必须为通用字符串,因此执行以下操作:

lineVec = str(line).strip().split('\t')

此时lineVec的元素类型虽为string,但输出仍显示为“b'heros\xff…..”,二进制标志依然存在。由于后续对以lineVec元素为键的字典进行索引时,仅能识别通用字符串键,导致每次索引均抛出KeyError异常。

经过多次尝试发现:二进制串经str()函数转换后,内容已转化为通用字符串。即“b'heros\xff……”中的字符均可通过Python字符串处理手段进行操作。

若给定word=”b'heros”,欲获取通用字符串形式的“heros”,可直接截取word第3至最后一个字符,或替换“b'”:

newWord = word[2:-1]
#或
newWord = word.replace("b'",'') #因为单引号是python中表示字符串的特殊功能字符,所以被替换的字 

注意,若写作'b''会引发报错。需用双引号包裹单引号进行替换。

使用上述方法更新字典键后,问题得以解决。

一些扩充

在解决上述问题时,查阅了多种相关解决方法,对Python中二进制串与通用字符串的转换有了初步了解。然而,现有方法多针对纯英语字符串,对前述中文字符无效。使用以下方法转换中文字符串时会出现编码错误。

给定通用字符串 string = ‘a string',需将其转换为二进制串时,可直接调用字符串的内置方法:

print string
>>>a string

bstring = string.encode('ascii') # encode方法,参数用来指定编码标准
print bstring
>>>b'a string'

string1 = bstring.decode('ascii') # encode的逆,对二进制串进行解码
print string1
>>>a string

在文本文件读取与解析过程中,常遇到此类二进制问题,希望本文能对大家有所帮助。

以上关于Python二进制串转换为通用字符串的方法即为分享的全部内容,希望能提供参考,并感谢大家的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。