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实现可以断点续传和并发的ftp程序
Sep 13 Python
Python开发的实用计算器完整实例
May 10 Python
对python:print打印时加u的含义详解
Dec 15 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
python celery分布式任务队列的使用详解
Jul 08 Python
Django model update的多种用法介绍
Mar 28 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
Python发送手机动态验证码代码实例
Feb 28 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
Python实现敏感词过滤的4种方法
Sep 12 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 IP及IP段进行访问限制的代码
2008/12/17 PHP
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php中使用sftp教程
2015/03/30 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
JS实现小星星特效
2019/12/24 Javascript
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python字符串处理函数简明总结
2015/04/13 Python
Python类属性的延迟计算
2016/10/22 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
销售自我评价
2013/10/22 职场文书
作文评语大全
2014/04/23 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
教师节简报
2015/07/20 职场文书