将二进制字符串拆分为31位字符串

时间:2017-03-28 16:51:39

标签: python split binary

我有一个二进制字符串,我想将其拆分为31位数组

1101000011010010010000001101101011110010010000001101110011000010110110101100101001000000110100101110011001000000110000101101110011001110110000101110100

这只是二进制字符串的一个示例,但我需要它可以用于任何二进制字符串,如果我想重新加入数组,则保持二进制字符串的完整性。一旦数组生成,将0附加到前面,确保所有内容的长度为31。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式

这里

  

{n,m}匹配前面表达式的至少n次和最多m次。

>>> import re
>>> s = '1101000011010010010000001101101011110010010000001101110011000010110110101100101001000000110100101110011001000000110000101101110011001110110000101110100'
>>> re.findall(r'.{,30}''.',s)
['1101000011010010010000001101101', '0111100100100000011011100110000', '1011011010110010100100000011010', '0101110011001000000110000101101', '110011001110110000101110100']

要使用0'来填充len 31的项目,您可以使用str.ljust

>>> [i.ljust(31,'0') for i in re.findall(r'.{,30}''.',s)]
['1101000011010010010000001101101', '0111100100100000011011100110000', '1011011010110010100100000011010', '0101110011001000000110000101101', '1100110011101100001011101000000']

执行时间:

0.000314

希望它有所帮助!