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类属性与实例属性用法分析
May 09 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
python编辑用户登入界面的实现代码
Jul 16 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
Python制作词云图代码实例
Sep 09 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
Python读取文件夹下的所有文件实例代码
Apr 02 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 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实现rc4加密算法代码
2012/04/25 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
网页打开自动最大化的js代码
2012/08/22 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
第一次接触Bootstrap框架
2016/10/24 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
Javascript实现打鼓效果
2021/01/29 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
python如何查看网页代码
2020/06/07 Python
利用python进行文件操作
2020/12/04 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
奇怪的鱼:Weird Fish
2018/03/18 全球购物
心理健康教育心得体会
2013/12/29 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
店长岗位职责
2015/02/11 职场文书
承兑汇票延期证明
2015/06/23 职场文书