Python字符串和二进制字符串之间的转换方法示例

 更新时间:2023年06月14日 15:41:23   作者:羽丶千落  
python中没有0-1形式的二进制类型,但我们依然可以存储二进制类型的数据,下面这篇文章主要给大家介绍了关于Python字符串和二进制字符串之间的转换方法,需要的朋友可以参考下

说明

字符串:可以包含任意字符
二进制字符串:转换结果的长度为8的倍数

涉及的内容:

  • 字符串与bytes类型的互相转换
  • bytes类转与 list 列表的互相转换
  • bin函数的使用
  • int函数的使用

字符串转二进制字符串

步骤:

  • 将字符串转成bytes类型
  • 将bytes类型转成list类型(元素为int型)
  • 将list的每个元素转成二进制字符串(数值在0-255之间),指定长度为8位
  • 拼接每个元素转成的二进制字符串

实现:

text = "我的世界123abc"
b_text = text.encode() # b'\xe6\x88\x91\xe7\x9a\x84\xe4\xb8\x96\xe7\x95\x8c123abc'
list_b_text = list(b_text)
# [230, 136, 145, 231, 154, 132, 228, 184, 150, 231, 149, 140, 49, 50, 51, 97, 98, 99]
re = []
for num in list_b_text:
	re.append(bin(num)[2:].zfill(8))
"""
['11100110', '10001000', '10010001', '11100111', '10011010', '10000100', '11100100', '10111000', '10010110', '11100111', '10010101', '10001100', '00110001', '00110010', '00110011', '01100001', '01100010', '01100011']
"""
bin_str = ''.join(re)
# '111001101000100010010001111001111001101010000100111001001011100010010110111001111001010110001100001100010011001000110011011000010110001001100011'

二进制字符串转字符串

步骤:

  • 将二进制字符串进行切分,每8位为一组
  • 将每一组的二进制字符串转成int类型,以列表类型存储
  • 将列表转为bytes类型
  • 将bytes类型转为字符串

实现:

bin_str='111001101000100010010001111001111001101010000100111001001011100010010110111001111001010110001100001100010011001000110011011000010110001001100011'

list_bin = [bin_str[i:i+8] for i in range(0,len(bin_str),8)]
"""
['11100110', '10001000', '10010001', '11100111', '10011010', '10000100', '11100100', '10111000', '10010110', '11100111', '10010101', '10001100', '00110001', '00110010', '00110011', '01100001', '01100010', '01100011']
"""
list_int = []
for bin_s in list_bin:
	list_int.append(int(bin_s,2))
# [230, 136, 145, 231, 154, 132, 228, 184, 150, 231, 149, 140, 49, 50, 51, 97, 98, 99]

bytes(list_int).decode()
# '我的世界123abc'

附:Python 二进制、整数相互转化

整数转二进制:
1、采用%2的方式计算
2、采用python自带了方法 bin.
比如bin(10) 回返回字符串'0b1010' ,只留下‘0',‘1'序列需要把‘0b'去掉.
bin(number).replace('0b','') 或bin(number)[2:]
>>> bin(10)  // 为了下边表示方便 放入t中
'0b1010'
 
二进制转整数:
>>> int(t[2:],2)
10

总结

到此这篇关于Python字符串和二进制字符串之间的转换方法的文章就介绍到这了,更多相关Python字符串和二进制字符串转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python写的一个定时重跑获取数据库数据

    Python写的一个定时重跑获取数据库数据

    本文给大家分享基于python写的一个定时重跑获取数据库数据的方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • NumPy 数组属性的具体使用

    NumPy 数组属性的具体使用

    本文主要介绍了NumPy 数组属性的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • NumPy排序的实现

    NumPy排序的实现

    这篇文章主要介绍了NumPy排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python获取SQLite查询结果表列名的方法

    Python获取SQLite查询结果表列名的方法

    这篇文章主要介绍了Python获取SQLite查询结果表列名的方法,涉及Python连接及查询SQLite数据库的相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Python命令行解析器argparse详解

    Python命令行解析器argparse详解

    大家好,本篇文章主要讲的是Python命令行解析器argparse详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Python格式化输出之format用法详解

    Python格式化输出之format用法详解

    Python中格式化字符串目前有两种阵营:%和format,这篇文章主要给大家介绍了关于Python格式化输出之format用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Python实现Linux系统上CI/CD工作流的方法详解

    Python实现Linux系统上CI/CD工作流的方法详解

    在现代软件开发中,持续集成(CI)和持续部署(CD)是提高开发效率、保证代码质量的重要手段,下面我们来看看如何使用Python实现Linux系统的CI/CD工作流吧
    2025-04-04
  • 详解python中的闭包

    详解python中的闭包

    这篇文章主要介绍了python中闭包的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    下面小编就为大家带来一篇Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 使用Pandas的Series方法绘制图像教程

    使用Pandas的Series方法绘制图像教程

    今天小编就为大家分享一篇使用Pandas的Series方法绘制图像教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论