将二进制序列从一种形式转换为另一种形式

时间:2019-11-25 12:40:13

标签: python binary

我有一个文件,该文件的顶部包含一个主要数字序列。我也有一些相似的二级序列,每个序列都与一级序列匹配,除了一级序列下方的一个位置。

输入:

[0001][0010][0100][1000]
[0001][1000][0100][1000]
[0001][0010][0100][0010]
[0100][0010][0100][1000]

我需要做的是转换辅助序列,以便在将序列中每隔一个数字转换为[0000]时,不匹配的数字保持不变。

所需的输出:

[0001][0010][0100][1000]
[0000][1000][0000][0000]
[0000][0000][0000][0010]
[0100][0000][0000][0000]

1 个答案:

答案 0 :(得分:0)

以下内容应提供期望的结果:

with open('in.txt') as f:
    data = [[b  for b in x.strip()[1:-1].split('][')] for x in f.readlines()]

for col, val in enumerate(data[0]):
    for r in data[1:]:
        if r[col] == val:
            r[col] = '0000'

with open('out.txt', 'w') as f:
    f.writelines(['[' + ']['.join(r) + ']\n' for r in data])

这给了我们out.txt:

[0001][0010][0100][1000]
[0000][1000][0000][0000]
[0000][0000][0000][0010]
[0100][0000][0000][0000]