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友情链接检查方法
Jul 08 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
python防止随意修改类属性的实现方法
Aug 21 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
关于Tensorflow分布式并行策略
Feb 03 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
python语言实现贪吃蛇游戏
Nov 13 Python
python 批量将中文名转换为拼音
Feb 07 Python
Pandas加速代码之避免使用for循环
May 30 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
解析htaccess伪静态的规则
2013/06/18 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
PHP读取Excel类文件
2017/05/15 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
JavaScript中的类继承
2010/11/25 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python如何输出反斜杠
2020/06/18 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
团日活动总结范文
2014/04/25 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
MySQL笔记 —SQL运算符
2022/01/18 MySQL