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根据出生年份简单计算生肖的方法
Mar 27 Python
python获得linux下所有挂载点(mount points)的方法
Apr 29 Python
在Django中创建动态视图的教程
Jul 15 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
python微信公众号之关键词自动回复
Jun 15 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
PyQt5 多窗口连接实例
Jun 19 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 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 八种基本的数据类型小结
2011/06/01 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
python实现三种随机请求头方式
2021/01/05 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
新闻记者实习自我鉴定
2013/09/19 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
村容村貌整治方案
2014/05/21 职场文书
农村党员一句话承诺
2014/05/30 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
golang定时器
2022/04/14 Golang
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android