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加密自己的密码
Aug 04 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
python奇偶行分开存储实现代码
Mar 19 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
seek引发的python文件读写的问题及解决
Jul 26 Python
django框架ModelForm组件用法详解
Dec 11 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python Socket网络编程实现C/S模式和P2P
Jun 22 Python
如何利用python创作字符画
Jun 25 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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
一个改进的UBB类
2006/10/09 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
php实现微信扫码支付
2017/03/26 PHP
JS event使用方法详解
2008/04/28 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
angular4自定义组件详解
2017/09/28 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python深入学习之装饰器
2014/08/31 Python
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
python 下载文件的多种方法汇总
2020/11/17 Python
信息管理员岗位职责
2013/12/01 职场文书
毕业生自荐书
2014/02/03 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
单位委托函范文
2015/01/29 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers