Python二进制串转换为通用字符串的方法


Posted in Python onJuly 23, 2018

一个小问题

今天在做一个实验时,需要对一个包含中英文词汇的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 相关文章推荐
Python机器学习之决策树算法实例详解
Dec 06 Python
python对excel文档去重及求和的实例
Apr 18 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
详解python和matlab的优势与区别
Jun 28 Python
Python Numpy计算各类距离的方法
Jul 05 Python
python 获取sqlite3数据库的表名和表字段名的实例
Jul 17 Python
解决python flask中config配置管理的问题
Jul 26 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
使用Django搭建网站实现商品分页功能
May 22 Python
python如何编写win程序
Jun 08 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python基于多线程实现ping扫描功能示例
Jul 23 #Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 #Python
python定向爬虫校园论坛帖子信息
Jul 23 #Python
python实现图片批量压缩程序
Jul 23 #Python
python中的插值 scipy-interp的实现代码
Jul 23 #Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 #Python
python中的turtle库函数简单使用教程
Jul 23 #Python
You might like
用PHP实现维护文件代码
2007/06/14 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
php字符串函数学习之substr()
2015/03/27 PHP
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
Seajs的学习笔记
2014/03/04 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
angular动态表单制作
2018/02/23 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
讲解Python中if语句的嵌套用法
2015/05/14 Python
Python抓取百度查询结果的方法
2015/07/08 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
简述Python2与Python3的不同点
2018/01/21 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
德国机车企业:FC-Moto
2017/10/27 全球购物
什么是反射?如何实现反射?
2016/07/25 面试题
高中生自我评语大全
2014/01/19 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
黄山导游词
2015/01/31 职场文书
少先队工作总结2015
2015/05/13 职场文书
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers