Python и чтение строк
-
13-09-2019 - |
Вопрос
Когда я запускаю exe-файл, он выводит данные на экран.Я не знаю конкретную строку, где я хочу распечатать, но есть ли способ заставить python напечатать следующую строку после строки с надписью "Сводка"?Я знаю, что это есть там, когда оно печатается, и мне нужна информация сразу после.Спасибо!
Решение
Действительно простое решение на Python:
def getSummary(s):
return s[s.find('\nSummary'):]
Это возвращает все после первого экземпляра Краткие сведения
Если вам нужно быть более конкретным, я бы рекомендовал регулярные выражения.
Другие советы
на самом деле
program.exe | grep -A 1 Summary
сделал бы свою работу.
Если exe-файл выводится на экран, то передайте этот вывод в текстовый файл.Я предположил, что exe-файл находится в Windows, затем из командной строки:
myapp.exe > output.txt
И ваш достаточно надежный код python был бы чем-то вроде:
try:
f = open("output.txt", "r")
lines = f.readlines()
# Using enumerate gives a convenient index.
for i, line in enumerate(lines) :
if 'Summary' in line :
print lines[i+1]
break # exit early
# Python throws this if 'Summary' was there but nothing is after it.
except IndexError, e :
print "I didn't find a line after the Summary"
# You could catch other exceptions, as needed.
finally :
f.close()