Поиск строки в строке Python (не файл) - PullRequest
1 голос
/ 05 мая 2011

Я знаю, как сделать это с файлом, вы просто делаете 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" для номера ревизии в журнале и распечатать строку (и выше и ниже)

Ответы [ 2 ]

9 голосов
/ 05 мая 2011
for line in log.splitlines():
    # whatever

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

for line in f:
    # whatever

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

6 голосов
/ 05 мая 2011

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

Вариант 1 :

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

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

Вариант 2 :

log = os.popen("log.sh").read()
for line in log.splitlines(True):
   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...