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计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
Python制作词云的方法
Jan 03 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 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 代码优化的42条建议 推荐
2009/09/25 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
JavaScript的Cookies
2008/01/16 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python操作csv文件实例详解
2017/07/31 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
暑期研修感言
2014/02/17 职场文书
女生节标语
2014/06/26 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
2016银行求职自荐信
2016/01/28 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS