我是 python 新手,虽然我确信这可能是一个微不足道的问题,但我花了一天的时间试图以不同的方式解决这个问题。我有一个包含如下数据的文件:
<string>
<integer>
<N1>
<N2>
data
data
...
<string>
<integer>
<N3>
<N4>
data
data
...
并且延伸了很多次......我需要读取第一组(在第一组和第二组之间)的“数据”,其中包含 N1 个 X 点、一个 N2 个 Y 点和一个 N1*N2 Z 点。如果我只有一组数据,我已经知道如何读取所有数据,然后读取值 N1、N2,然后将其切成 X、Y 和 Z,重新整形并使用它……但如果我的文件包含更多比一组数据,我如何只从一个字符串读取直到下一个,然后对下一组重复相同的操作,直到我到达文件末尾?我尝试定义一个函数,如:
def dat_fun():
with open("inpfile.txt", "r") as ifile:
for line in ifile:
if isinstance('line', str) or (not line):
break
for line in ifile:
yield line
但不起作用,我得到没有数据的数组。任何意见将不胜感激。谢谢!