Skip to main content
 首页 » 编程设计

python之使用 Python 读取具有给定结构定界的文本文件

2025年05月04日21wayfarer

我正在尝试读取一个文本文件,其中包含多个字段,每个字段的结构都具有给定的字符数。我知道第一个字段需要 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']