Python 3.x - 将长二进制字符串分隔为短

时间:2015-11-30 20:17:11

标签: python python-3.x

我有一个关于将长二进制字符串分成较短二进制字符串的问题。

例如,我正在尝试转换......

000000100000000011000000100000000010000000100000000001

为...

000000100000000011
000000100000000010
000000100000000001

所以基本上,我正在寻找一个python命令,以便程序可以每18位数创建一个新行,如果可能的话,在前7位和后11位之间引入一个空格。然后将它们全部反转回更长的弦。

2 个答案:

答案 0 :(得分:5)

这会将长字符串分成较短的字符串。

>>> s = '000000100000000011000000100000000010000000100000000001'
>>> print('\n'.join([s[i:i + 7] + ' ' + s[i + 7:i + 18] for i in range(0,len(s),18)]))
0000001 00000000011
0000001 00000000010
0000001 00000000001

这也将放入你提到的空间。

为了反方向,我们可以做到以下几点:

>>> f = '0000001 00000000011\n0000001 00000000010\n0000001 00000000001'
>>> print(''.join([c for c in f if c in '01']))
000000100000000011000000100000000010000000100000000001

答案 1 :(得分:1)

val = '000000100000000011000000100000000010000000100000000001'
short_val = ''
for i range(len(val) - 1):
    if i % 16 == 0:
       print(short_val)
       short_val = ''
    else:
       short_val += val[i]