У меня есть проект, который включает в себя запись программы, которая извлекает определенные данные (числовые) из текстового файла, который должен быть обобщен для работы с разными текстовыми файлами в том же формате.Извлечение информации из текстового файла с помощью python
Файл представляет собой анализ молекулы, данные для извлечения - это координаты каждого атома внутри молекулы, поэтому его необходимо обобщить так, чтобы он извлекал столько данных, сколько там атомов в разных файлах.
Вот что я придумал до сих пор:
def Prog1():
f=open("C:/dimer.out","r")
m=open("C:/dimer1.out","w")
g=f.readlines()
for k in range(len(g)):
if "Standard" in g[k]:
c=k
for n in range(c+5, len(g)):
m.write(g[n])
if "------------" in g[n+1]:
break
Это в основном извлекает строки с информацией и записывает их в новый текстовый файл, в обобщенном виде в соответствии с форматом файла. (Линии с информацией начать всегда 5 строк после того, как линии, которая включает в себя «стандарт», и всегда следуют линии с большим количеством «-----» Тогда;.
def Prog2():
X=[]
Y=[]
Z=[]
m=open('C:/dimer1.out','r')
n=0
for line in m:
n+=1
k=n
data = csv.reader(m, delimiter=" ")
for i in range(k):
M=next(data)
while '' in M:
M.remove('')
X.append(M[3])
Y.append(M[4])
Z.append(M[5])
это предназначенные для извлечения точных данных в этих строках и помещать их в свои соответствующие списки. (Есть пробелы между данными и данными для извлечения чисел с несколькими символами. Но я получаю сообщение об ошибке «Stopiteration» на M = next (данные). Что такое ошибка? или как я могу изменить его на работу?
Спасибо заранее :)
'StopIteration' происходит потому, что данных больше нет – acushner