Python 字符串与二进制串的相互转换示例

一个问题,在Python中,如何将一个字符串转换为相应的二进制串(01形式表示),并且能够将这个二进制串再转换回原来的字符串。

一个简单版本

def encode(s):
 return ' '.join([bin(ord(c)).replace('0b', '') for c in s])

def decode(s):
 return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])

>>>encode('hello')
'1101000 1100101 1101100 1101100 1101111'
>>>decode('1101000 1100101 1101100 1101100 1101111')
'hello'
>>> bin(int('256', 10))
'0b100000000'
>>> str(int('0b100000000', 2))
'256'

以上这篇Python 字符串与二进制串的相互转换示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python处理二进制数据的方法

    本文实例讲述了python处理二进制数据的方法.分享给大家供大家参考.具体如下: #!/usr/env/env python #-*- coding: cp936 -*- ''''' add Head Infomation for pcm file ''' import sys import struct import os __author__ = 'bob_hu, hewitt924@gmail.com' __date__ = 'Dec 19,2011' __update__ = 'Dec

  • python二进制读写及特殊码同步实现详解

    python对二进制文件的操作需要使用bytes类,直接写入整数是不行的,如果试图使用f.write(123)向文件中以二进制写入123,结果提示参数不是bytes类型. import os import struct a = 0x1A2B3C4D b = 0x239875ad3d5ffaaa filepath = 'D:\\wygDocument\\python\\code\\abc.dat' f_in = open(filepath,'wb+') for value in range(1,5

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

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

  • Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns

  • Python二进制串转换为通用字符串的方法

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

  • 将python图片转为二进制文本的实例

    写在最前面: 我在研究机器学习的过程中,给的数据集是手写数字图片被处理后的由0,1表达的txt文件,今天写一写关于图片转化为二进制txt文件的python实践 在这里,我们使用python中的Pillow库,Pillow库中有一个很重要的类是Image,可以对图片进行很多处理. 首先,导入Image类 from PIL import Image 打开图片 im=Image.open('1.jpg') 获取图片宽和高 width=im.size[0] height=im.size[1] 也可以这样

  • 使用Python进行二进制文件读写的简单方法(推荐)

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块. python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的. import struct a=12.34 #将a变为二进制 bytes=struct.pack('i',a) 此时bytes就是一个string字符串,字符串按字节同a的二进制存储内容相同. 再进行反操作 现有二进制数据bytes,(其实就是字

  • Python 字符串与二进制串的相互转换示例

    一个问题,在Python中,如何将一个字符串转换为相应的二进制串(01形式表示),并且能够将这个二进制串再转换回原来的字符串. 一个简单版本 def encode(s): return ' '.join([bin(ord(c)).replace('0b', '') for c in s]) def decode(s): return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]]) >>>encode('hello'

  • Python中bytes字节串和string字符串之间的转换方法

    目录 背景 代码 代码说明: 验证一下 附:bytes和string区别 总结 背景 在工作中经常会碰到字节串(bytes)与字符串(string)之间转换的问题,做个记录. bytes只负责用字节序列的形式(二进制形式)存储数据,不关心数据本身是图片.文字.视频等等.如果需要使用并且展示的话,按照对应的解析规则处理,就可以拿到对应类型的数据.如常见的字符串类型,只需要使用对应的字符编码格式,就可以拿到字符串的内容. 下面会用一些代码来表示bytes的构造,以及和字符串之间的转换. 代码 先看一

  • Python正则替换字符串函数re.sub用法示例

    本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串 然后把它替换成自己想要的字符串的方法 re.sub 函数进行以正则表达式为基础的替换工作 下面是一段示例源码 #!/usr/bin/env python #encoding: utf-8 import re url = 'https://113.215.20.136:9011/113.215.6.77/c3

  • Python使用re模块正则提取字符串中括号内的内容示例

    本文实例讲述了Python使用re模块正则提取字符串中括号内的内容操作.分享给大家供大家参考,具体如下: 直接上代码吧: # -*- coding:utf-8 -*- #! python2 import re string = 'abe(ac)ad)' p1 = re.compile(r'[(](.*?)[)]', re.S) #最小匹配 p2 = re.compile(r'[(](.*)[)]', re.S) #贪婪匹配 print(re.findall(p1, string)) print(

  • 在Python中实现替换字符串中的子串的示例

    假如有个任务: 给定一个字符串,通过查询字典,来替换给定字符中的变量.如果使用通常的方法: >>> "This is a %(var)s" % {"var":"dog"} 'This is a dog' >>> 其实可以使用string.Template类来实现上面的替换 >>> from string import Template >>> words = Template

  • python 字符串格式化的示例

    一.旧式的字符串格式化 % 操作符 参考以下示例: >>> name = "Eric" >>> "Hello, %s." % name 'Hello, Eric.' 当有多个变量需要插入到字符串中时: >>> name = "Eric" >>> age = 74 >>> "Hello, %s. You are %s." % (name,

  • python字符串切片及常用方法示例详解

    目录 一.切片 二.常用方法 2.1 查找 2.2 修改 2.3 判断 一.切片 切片:指对操作的对象截取其中一部分的操作,字符串.列表.元组都支持切片操作 语法:序列[开始位置下标:结束位置下标:步长] ,不包含结束位置下标数据,步长为选取间隔,正负均可,默认为1 举例如下: str = 'abcdefg_a' print(str[1:6:2], str[2:6], str[:3], str[3:], str[:]) print(str[::2], str[:-2], str[-6:-2],

  • Python实现的破解字符串找茬游戏算法示例

    本文实例讲述了Python实现的破解字符串找茬游戏算法.分享给大家供大家参考,具体如下: 最近在一个QQ群里发现有那种机器人, 发出来字符串找茬游戏: 有点类似于: 没没没没没没没没没没没没没没没没没没 没没没没没没没没没没没没没没没没没没 没没没没没役没没没没没没没没没没没没 没没没没没没没没役没没没没没没没没没 没没没没没没没没没没没没没没没没没没 没没没没没没没没没没没没没没没没没没 玩法就是用户发消息到群里: #找茬 然后群里有个自动聊天的机器人, 他接到这句话之后, 会将上面一大堆文字

  • Python实现字符串逆序输出功能示例

    本文实例讲述了Python实现字符串逆序输出功能.分享给大家供大家参考,具体如下: 1.有时候我们可能想让字符串倒序输出,下面给出几种方法 方法一:通过索引的方法 >>> strA = "abcdegfgijlk" >>> strA[::-1] 'kljigfgedcba' 方法二:借组列表进行翻转 #coding=utf-8 strA = raw_input("请输入需要翻转的字符串:") order = [] for i in

随机推荐