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 开发Activex组件方法
Nov 08 Python
python strip()函数 介绍
May 24 Python
python格式化字符串实例总结
Sep 28 Python
深入理解python函数递归和生成器
Jun 06 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
tornado 多进程模式解析
Jan 15 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
Python中 map()函数的用法详解
Jul 10 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
python中如何写类
Jun 29 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 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
eAccelerator的安装与使用详解
2013/06/13 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
js读写json文件实例代码
2014/10/21 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Python正则表达式和元字符详解
2018/11/29 Python
python使用minimax算法实现五子棋
2019/07/29 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
pandas apply多线程实现代码
2020/08/17 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
人力管理专业毕业生求职信
2014/02/27 职场文书
关于安全演讲稿
2014/05/09 职场文书
大学生就业自荐书
2014/06/16 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015年小学开学寄语
2015/02/27 职场文书
房屋维修申请报告
2015/05/18 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
法律意见书范本
2015/06/04 职场文书
施工安全协议书
2016/03/22 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js