在Python中按特定等级对数据进行分组

时间:2017-11-07 12:55:43

标签: python parsing text

我有一个看起来像这样的文件。段中的数字是x和y坐标。The text file

我想只读取rank = 1的记录并将坐标存储在x和y列表中。所以我需要阅读并保存等级和分数。如果程序知道点的数量,它知道它必须读取和存储多少坐标。

我已经有以下代码,但我不知道如何告诉程序它需要在新段之前读取点数。

file = "/Users/yuval/Desktop/test1.txt"

x = []
y = []

with open(file, "r") as f:
    for lines in f:
        line = lines.split()
        if(line[0] == "segment"):
            rank = int(line[3])
            points = int(line[5])

1 个答案:

答案 0 :(得分:0)

在您的第一个if屏蔽后,您可以使用其他if数据块在rank==1时附加到您的列表中。

x = []
y = []

rank = None
with open(file, "r") as f:
    for lines in f:
        line = lines.strip().split()
        if(line[0] == "segment"):
            rank = int(line[3])
            points = int(line[5])
            continue
        if rank==1:
            x.append(float(line[0]))
            y.append(float(line[1]))