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 strip lstrip rstrip使用方法
Sep 06 Python
Python中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Python实现屏幕截图的两种方式
Feb 05 Python
python实现二叉查找树实例代码
Feb 08 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Python数据类型之String字符串实例详解
May 08 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
python文件排序的方法总结
Sep 13 Python
Opencv 图片的OCR识别的实战示例
Mar 02 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python使用7z解压apk包的方法
2015/04/18 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
如何用python免费看美剧
2020/08/11 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
美容院考勤制度
2014/01/30 职场文书
学生党支部先进事迹
2014/02/04 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
公司委托书格式范文
2014/04/04 职场文书
股东合作协议书范本
2014/04/14 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
邓小平理论心得体会
2014/09/09 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
医院志愿者活动总结
2015/05/06 职场文书
上班旷工检讨书
2015/08/15 职场文书
英语导游欢迎词
2015/09/30 职场文书
《落花生》教学反思
2016/02/16 职场文书