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