我有一个我需要转换成二进制文件的字符串。我试过这个:
bin = ''.join(format(ord(x), 'b') for x in strr)
但结果是错误的长度,因为Python不会保持前导零。例如,它代替01110100
输出1110100
。
此方法:
temp = '{0:08b}'.format(frame)
不使用字符串。
如何正确地将字符串转换为二进制文件?
编辑:
示例输入:'test'
所需输出:'1110100011001010111001101110100'
答案 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'