我正在尝试读取一个文本文件,其中包含多个字段,每个字段的结构都具有给定的字符数。我知道第一个字段需要 n1 个字符,第二个字段需要 n2 个字符,...
这是我目前所拥有的一行:
# Line
line = 'AAABBCCCCDDDDDE'
# Array structure
slice_structure = [3,2,4,5,1]
sliced_array = []
cursor = 0
for n in slice_structure :
sliced_array.append(line[cursor:cursor+n])
cursor += n
print(sliced_array)
响应如下:
['AAA', 'BB', 'CCCC', 'DDDDD', 'E']
我的意图是用这段代码创建一个函数,并为文件的每一行调用它。我相信一定有更好的方法来做到这一点。
提前致谢。
最佳答案
您可以使用 groupby
对于您从该文件中读取的每一行:
from itertools import groupby
line = 'AAABBCCCCDDDDDE'
result = ["".join(list(g)) for k, g in groupby(line)]
print(result)
结果:
['AAA', 'BB', 'CCCC', 'DDDDD', 'E']
关于python - 使用 Python 读取具有给定结构定界的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58400160/