我正在读取节点的坐标(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
答案 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