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

标签 python arrays string text-files slice

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

相关文章:

python - 在 linux 上用 python 将文件写入 usb

java - 消除重复字符串并仅保留字符串数组中的一个

java - 如何在 Java 中使用数组和分支?

string - 创建字符串元胞数组 matlab

java - 将 "or"添加到字符串

python - 格式化日期时间以使用 pandas 绘制时间序列

python - Sympy 符号矩阵指数

python - 从 Viber 机器人向订阅用户发送消息

php - HTML 表单/PHP : select with option value = array

c - 给定一个字符串,编写一个程序通过替换 ? 来生成所有可能的字符串。用 0 和 1?