Поиск чисел после определенной строки в выходном файле? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть выходной файл с загрузкой информации, и я хочу прочитать числовое значение, которое появляется после определенного слова.

В моем файле есть строка, такая как

«Конечная энергия, E = -82137.1098 эВ»

Я хотел бы найти в моем файле строку «Конечная энергия», а затем прочитать и сохранить числовое значение.

ИтакНа данный момент мне удалось найти в файле «Конечная энергия» и напечатать всю строку, содержащую эту строку, но я не могу найти способ затем прочитать число.

Пока мой код выглядит так

energystring = 'Final energy'

with open(filename, 'r') as file:
    for line in file:
        if energystring in line:
            energyline = line
print(energyline)

Спасибо за любую помощь, которую вы можете оказать.

1 Ответ

0 голосов
/ 04 ноября 2019

Вам просто нужно разобрать число из строки. Вы можете разбить строку на пробел, чтобы получить все слова, попытаться преобразовать каждое слово в число с плавающей точкой и получить то, которое работает. Так как в строке есть только одно число, все, что успешно брошено на плавание, является вашим энергетическим числом.

def get_energy_level(line):
    for word in line.split():
        try:
            return float(word)
        except ValueError:
            pass


with open(filename, 'r') as file:
    for line in file:
        if energystring in line:
            energy_level = get_energy_level(line)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...