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 相关文章推荐
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
Python比较配置文件的方法实例详解
Jun 06 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
matplotlib grid()设置网格线外观的实现
Feb 22 Python
Python中如何处理常见报错
Jan 18 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 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 foreach、while性能比较
2009/10/15 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php常见的魔术方法详解
2014/12/25 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
提交表单时执行func方法实现代码
2013/03/17 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
Django自定义过滤器定义与用法示例
2018/03/22 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python的scipy实现插值的示例代码
2019/11/12 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
项目经理的岗位职责
2013/11/23 职场文书
自我评价200字分享
2013/12/17 职场文书
岗位职责范本大全
2015/02/26 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers