从Python中的文件中读取多行

时间:2018-03-10 07:06:43

标签: python arrays python-3.x file

我有一个文本文件,其中包含我想用Python阅读的数据。文件跟随数据:

nodCoord = 0 0 0 0.5 0 1 0.5 0 0.5 1
1 0 1 0.5 1 1 1.5 0 1.5 1
2 0 2 0.5 2 1
# Element data: element type, material, connectivities
elCon = QUAD8 1 1 4 6 7 8 5 3 2

现在我必须阅读" nodCoord ="线和它下面的所有线都是以数字开头的数字,比如"坐标",但我不知道会有多少行。我该怎么办?

1 个答案:

答案 0 :(得分:1)

在符合条件的情况下阅读这些内容。

def extract_lines(self, file_name):
    with open(file_name) as f:
        for line in f:
            if line.startswith('nodCoord'):
                line = line.split('=')[1] # if you want to exclude the nodCoord 
                yield line
                continue
                while True:
                    if line[0].isdigit():
                        yield line
                    else:
                        break

这将为您提供一个预期行的迭代器,然后您可以将其解析为数组。

另请注意,这将为您提供以nodCoord开头并以整数开头的每组行。如果您对这些行的其余部分不感兴趣,或者文件中没有这些行,您可以在内部代码之后的break循环中放置for