Я знаю, как это сделать с файлом, вы просто делаете 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" для номера версии в журнале и распечатать строку (и выше и ниже)
У вас есть несколько вариантов:
Вариант 1:
log = os.popen("log.sh").readlines()
Это дает список строк, которые можно обрабатывать точно так же, как при чтении файла.
Вариант 2:
log = os.popen("log.sh").read()
for line in log.splitlines(True):
...
for line in log.splitlines():
# whatever
Обратите внимание, что вам не нужно использовать f.readlines()
для файла f
.
for line in f:
# whatever
будет работать нормально.