我正在尝试分析一个文件,其中总是存在一部分,而过去的部分是可选的.
for line in finp:
# This part is always present
for _ in range(int(ldata[2])):
sdata = finp.readline()
tdos.write(sdata)
#This part may or may not be present
for i in range(int(atoms)):
next(finp)
for j in range(int(ldata[2])):
aatom[i][j] = [float(x) for x in
finp.readline().strip().split()]
问题是,如果不存在可选部分,则next(finp)给出错误:
next(finp)
StopIteration
我尝试过:
for i in range(int(atoms)):
if i is not None:
next(finp)
for j in range(int(ldata[2])):
aatom[i][j] = [float(x) for x in
finp.readline().strip().split()]
else:
break
但这不能解决问题.我已经找到许多先前的问题,例如this,但无法解决此问题.
如已接受的ans所述,解决此问题的唯一方法是立即读取整个文件,然后进行处理?