从文本文件中获取最后一个坐标列表

时间:2017-12-25 01:04:22

标签: python coordinate

我正在读取节点的坐标(76个节点)。基本上我分割了所有坐标的字符串。分裂后我得到节点坐标的结果,第一个数是节点数,相应坐标(x,y)。例如:

['1','3600','2300']

我只想获得从61到节点的节点坐标。我尝试使用节点数将其转换为整数进行比较。我不想删除行“while line!=”EOF“因为它出现在文本文件的末尾。我怎么能这样做?

 def read_coordinates(self, inputfile):
    coord = []
    iFile = open(inputfile, "r")
    for i in range(6):  # skip first 6 lines
        iFile.readline()
    line = iFile.readline().strip()
    while line != "EOF":
        values = line.split()
        while int(values[0]) > 61:
            coord.append([float(values[1]), float(values[2])])
            line = iFile.readline().strip()
    iFile.close()
    return coord

1 个答案:

答案 0 :(得分:0)

您应该在while line != "EOF":内使用if语句,如下所示:

while line != "EOF":
    values = line.split()
    if int(values[0]) > 61:
        coord.append([float(values[1]), float(values[2])])
    line = iFile.readline().strip()

另一种解决方案是读入孔文件,然后使用列表切片删除前6行和列表理解以删除大于61的节点。

  with open(iFile, 'r') as f:
      coords = [ line.split(' ') for line in f]  # Read every line
      coords = coords[6:]  # Skip first 6 lines
      coords = [ [x,y] for nr, x, y in coords if int(nr) > 61] # Remove every node large    r than after 61