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中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 Python
python实现基本进制转换的方法
Jul 11 Python
Python出现segfault错误解决方法
Apr 16 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
图文详解python安装Scrapy框架步骤
May 20 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
深入了解Python enumerate和zip
Jul 16 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 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
德生H-501的评价与改造
2021/03/02 无线电
php初始化对象和析构函数的简单实例
2014/03/11 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
python如何通过实例方法名字调用方法
2018/03/21 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
在python中pandas的series合并方法
2018/11/12 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
篮球比赛口号
2014/06/10 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
缅怀先烈主题班会
2015/08/14 职场文书