Поиск строки в строке Python (не файл)

1

Я знаю, как это сделать с файлом, вы просто делаете file = file.open(f) f

file = open("file.txt")
for line in file.readlines():
  if line.startswith("foo"):
    print line

Но теперь я читаю вывод процесса вроде этого

log = os.popen("log.sh").read()

Это выводится как строка, которая может использоваться с печатью отлично, но если я делаю "для строки в журнале", она разбивает каждый символ, а не линию. И, будучи строкой, нет атрибута .readlines().

Моя конечная цель состоит в том, чтобы иметь возможность "grep" для номера версии в журнале и распечатать строку (и выше и ниже)

Теги:
grep

2 ответа

5
Лучший ответ

У вас есть несколько вариантов:

Вариант 1:

log = os.popen("log.sh").readlines()

Это дает список строк, которые можно обрабатывать точно так же, как при чтении файла.

Вариант 2:

log = os.popen("log.sh").read()
for line in log.splitlines(True):
   ...
  • 0
    @ S.Lott: уже исправлено, спасибо.
9
for line in log.splitlines():
    # whatever

Обратите внимание, что вам не нужно использовать f.readlines() для файла f.

for line in f:
    # whatever

будет работать нормально.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню