Найдите строки с фразой и напечатайте еще один раздел строки

Я пытаюсь найти длинный текстовый файл, чтобы найти разделы, в которых находится фраза, а затем распечатать фразу в одном столбце и соответствующие данные в другом в новом текстовом файле.

Фраза, которую я ищу, это "Initialize All", Текстовый файл будет иметь тысячи строк - та, которую я ищу, будет выглядеть примерно так:

14-09-23 13:47:46.053 -07 000000027 INF: Initialize All start

Это то место, где я до сих пор пытаюсь напечатать три отдельных столбца: Инициализировать все, Дата, Время

with open ('Result.txt', 'w') as wFile:
    with open('Log.txt', 'r') as f:
        for line in f:
            if 'Initialize All' in line:
                date, time = line.split(" ",2)[:2]
                wFile.write(date)

3 ответа

with open('file.txt', 'r') as f:
    for line in f:
        if 'Inintialize All' in line:
            # do stuff with line

Ты можешь использовать regex:

lines=open('file.txt', 'r').readlines()
[re.search(r'\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}',line).group(0) for line in lines: if 'Inintialize All' in line]
s = "14-09-23 13:47:46.053 -07 000000027 INF: Initialize All start"
if "Initialize All" in s: # check for substring
     date, time = s.split(" ",2)[:2] # split on whitespace and get the first two elements
     print date,time

14-09-23 13:47:46.053

2 в s.split(" ",2) означает maxsplit установлен в 2 поэтому мы просто делим дважды, кроме разделения всей строки, s.split()[:2] также будет работать, так как по умолчанию он разделяется на пробелы, но поскольку нам нужны только первые две подстроки, нет смысла разбивать всю строку.

Другие вопросы по тегам