ファイルを解析しようとしていますが、常に存在する部分があり、過去の部分はオプションです。EOFで正常終了する
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に記載されているとおり、ファイル全体を一度に読み込んで処理することですか?