Python二进制串转换为通用字符串

Python】汉字十六进制乱码问题的解决(Python2.7、3.7) 【py2.7】 问题:出现类似于这样的乱码 s='\xe4\xb8\xad\xe5\x9b\xbd\xe5\xa4\x96\xe6\xb1\x87\xe4\xba\xa4\xe6\x98\x93\xe4\xb8\xad\xe5\xbf\x83\xe5\x85\xb3\xe4\xba\x8e\xe5\xbc\x80\xe5\xb1\x952020\xe5\xb9\xb4\xe5\xba\xa6\xe9\x93\xb6\xe8\xa1\x8c\xe9\x97\xb4\xe5\xa4\x96\xe6\xb1\x8 阅读详情
一个小问题

       今天在做一个实验时,需要对一个包含中英文词汇的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二进制串转换通用字符串的方法 一个小问题 今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。 Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如: b'heroes\xff..... 在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以: lineVec = str(line).strip().split('\t') 此时的lineVec的元素类型为string,但输出是仍然是 “b’heros\xff…..” ,仍然无法摆脱二进制标志的影响。然而,尴尬的是,在后边对以lineVec元素作为键的字典进行索引时,只能获得通用字符串的键。所以,每次索引都以KeyErr 立即下载

相关推荐

波克 上海 Unity开发笔试题 2024

主要分为四部分,如果没有准备好,不要点击笔试链接,进入就会自动开始。

z2014z的博客 3323

python一行代码实现二进制字符串的相互

python一行代码实现二进制字符串的相互

Emmaaaaa's blog 2060

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写

本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。

m0n1o2p的博客 238

python二进制串字符串,正常显示中文

python二进制串化为字符串,正常显示中文

包龙星的剑 4622

二进制文件化成文本文件

1.区别 文本文件和二进制文件的区别在于打开这个文件的程序在对文件内容的解释上。 如果是文本文件,使用任何一种文本编辑器打开可以展现出人类可读信息字符,编码都符合某种编码方式,如ASCII、UTF8、GB2312等 如果是二进制文件,肯定没有编码方式,使用文本编辑器打开展现出来的就是一些乱七八糟的字符。使用UtralEdit可以显示原始的二进制文件,显示的就是原始16进制。右侧自动选了一种编...

u012138730的专栏 4万+

python二进制转换字符串

python二进制转换字符串 一、参照链接:https://www.cnblogs.com/cansun/p/8025547.html python本身默认编码为unicode #所有编码转换时都需通过unicode msg = “北京” print(msg.encode(encoding = “utf-8”))#unicode编码转换为utf-8编码 print(msg.encode(encoding = “utf-8”).decode(encoding = “utf-8”))#unicode编码转换

winownfuture的专栏 1万+

python二进制串字符_Python二进制串转换通用字符串的方法

一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如: b'heroes\xff.....在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以: lineVec = str(line).strip().split('\t')此时的lineVec的元素类型为string,但输出是仍然是 ...

weixin_39653448的博客 705

python二进制字符串_Python二进制串转换通用字符串的方法

一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如:b'heroes\xff.....在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以:lineVec = str(line).strip().split('\t')此时的lineVec的元素类型为string,但输出是仍然是 “b...

weixin_39656853的博客 928

python 二进制字符串_Python二进制串转换通用字符串的方法

一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如:b'heroesxff.....在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以:lineVec = str(line).strip().split('t')此时的lineVec的元素类型为string,但输出是仍然是 “b'h...

weixin_39960019的博客 3694

python如何把二进制文本_Python二进制串转换通用字符串的方法

一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如:b'heroes\xff.....在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以:lineVec = str(line).strip().split('\t')此时的lineVec的元素类型为string,但输出是仍然是 “b...

weixin_39599046的博客 1303

python汉字化为二进制_Python二进制串转换通用字符串的方法

一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如:b'heroes\xff.....在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以:lineVec = str(line).strip().split('\t')此时的lineVec的元素类型为string,但输出是仍然是 “b...

weixin_39596720的博客 507

python二进制字符串_Python二进制串转换通用字符串

一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如:b'heroes\xff.....在对每行进一步进行处理时,要求处理对象必须为通用字符串,所以:lineVec = str(line).strip().split('\t')此时的lineVec的元素类型为string,但输出是仍然是 “...

weixin_39610188的博客 831

python浮点型和整数型转换_Python字符串、整数、和浮点型数相互转换实例

Python字符串、整数、和浮点型数相互转换实例前言序锦在编程中,经常要用到字符串的相互转换,现在在这里记录一下Python里面的字符串和整数以及浮点型数之间是如何进行相互转换的。int(str)函数将符合整数的规定的字符串转换成int型的float(str)函数将符合浮点型的规定的字符串转换成float型的str(num)将整数、浮点型转换字符串型的int(str)函数将符合整数的规定的字符串...

weixin_39844426的博客 1469

python中怎么把每一个字符用、隔开_python 实现将list字符串,中间用空格隔开...

python 实现将list字符串,中间用空格隔开今天想输出一个list,中间用空格隔开。当然用循环可以搞定,但是这个也太不象python的风格了。找了半天,网上都说使用" ".join(a)的办法,但是python3不支持,在stackoverflow里面找了半天才得到一个结果a = [1,2,3,4]print(" ".join(str(i) for i in a))可是join里面是什么...

weixin_39563722的博客 2200

python 十六进制中文_python进制转换

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!进制转换:进制转换是人们利用符号来计数的方法。 进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。 基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。 位权是指,进位制中每一固定位置对应的单位值。 简单转换理念:把二进制三位一组分开就是八进制,四位一组...

weixin_39788386的博客 2347

python十进制小数二进制_Python实现的十进制小数与二进制小数相互转换功能

本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数 ⇒ 二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位如:0.25的二进制0.25*2=...

weixin_39637397的博客 798

python中进制化_python进制

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!进制转换:进制转换是人们利用符号来计数的方法。 进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。 基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。 位权是指,进位制中每一固定位置对应的单位值。 简单转换理念:把二进制三位一组分开就是八进制,四位一组...

weixin_39832727的博客 309

Python基础语法

本文集合了所有Python语法的基础与使用。方便快速理解与记忆。

2303_76600842的博客 3797

Python实现二进制与ASCII互工具:原理、代码与应用场景

计算机底层数据存储与传输的核心是二进制编码,而ASCII码作为最基础的字符编码标准,定义了128个字符(包括英文字母、数字、控制符等)与二进制数值的映射关系。其原理是将每个字符对应一个7位或8位的二进制数,通过编码(字符二进制)与解码(二进制字符)实现人可读文本与机器可处理数据间的转换。这一技术在网络通信、嵌入式系统调试、数据安全分析等领域具有重要价值,例如在协议分析中解析原始数据包,或在逆向工程中处理Shellcode。本文通过Python实现了一个轻量级转换工具,重点解决了二进制串的清洗、验证与格式

weixin_34116110的博客 292
上一篇: 一些Linux命令简要笔记 -- Shell基本命令
下一篇: 英文单词词形还原程序
张土豆
博客等级 码龄12年 14粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值