将字符串转换为bynary python

时间:2015-05-21 05:01:25

标签: python string binary

我有一个我需要转换成二进制文件的字符串。我试过这个:

bin = ''.join(format(ord(x), 'b') for x in strr)

但结果是错误的长度,因为Python不会保持前导零。例如,它代替01110100输出1110100

此方法:

temp = '{0:08b}'.format(frame)

不使用字符串。

如何正确地将字符串转换为二进制文件?

编辑:

示例输入:'test'

所需输出:'1110100011001010111001101110100'

1 个答案:

答案 0 :(得分:2)

我不确定这是否正在做你需要它做的事情。怎么样呢:

''.join("{:08b}".format(int(num, 16)) for num in strr.split())

样本

In [34]: strr
Out[34]: '74 65 73 74'

In [35]: ''.join("{:08b}".format(int(num, 16)) for num in strr.split())
Out[35]: '01110100011001010111001101110100'

如果您的文本是真正的序数编码的十六进制,那么您有一种非常时髦的存储数据方式,但您可以这样做:

''.join("{:08b}".format(ord(num)) for num in strr

样本

In [42]: strr
Out[42]: '74 65 73 74'

In [43]: ''.join("{:08b}".format(ord(num)) for num in strr)
Out[43]: '0011011100110100001000000011011000110101001000000011011100110011001000000011011100110100'