Python - определить строку и распечатать все это утверждение из текстового файла - PullRequest
0 голосов
/ 04 января 2019

У меня есть текстовый файл со следующим текстом:

The process runs very well||
It starts at 6pm and ends at 7pm||
The user_id is 23456||
This task runs in a daily schedule!!

Я пытаюсь увидеть извлечение всех строк, которые имеют строку "user_id". В основном я хочу извлечь это:

The user_id is 23456

Мой текущий код Python идентифицирует только, если искомая строка существует (или нет) в текстовом файле:

word = 'user_id'
if word in open('text.txt').read():
    print(word)
else:
    print("Not found")

Как мне распечатать все предложения, содержащие слово?

Спасибо!

Ответы [ 4 ]

0 голосов
/ 04 января 2019

Это именно то, для чего создаются регулярные выражения:

 import re
 with open('text.txt','r') as f:
      text = f.read()
      sentences = re.findall(r'(.*user.*)',text)
 if len(sentences) > 0:
      for sentence in sentences:
           print(sentence)
 else:
      print('Not found')
0 голосов
/ 04 января 2019

Просто выполните цикл for и итерируйте по каждой строке, проверяя, является ли word in строкой.

word = 'user_id'
for line in open('mean_temp.txt'):
    if word in line:
        print(line)

выход:

The user_id is 23456||
0 голосов
/ 04 января 2019

Попробуйте это.

word = 'user_id'
not_found = True
with open('text.txt', 'r') as infile:
    lines = infile.readlines()
    for line in lines:
        if word in line:
            print(line)

if not_found:
    print("Not found")
0 голосов
/ 04 января 2019

Вы хотите перебрать строки, чтобы найти то, что вы хотите

word = 'user_id'

with open('text.txt', 'r') as fh:
    for line in fh:
        if word in line:
            print(line)

Вы не печатаете строку, только слово, которое вы пытаетесь сопоставить. Обратите внимание, что with open() является более хорошим способом обработки открытия и закрытия файлов и функционально похож на (но не то же самое) на

fh = open('text.txt', 'r')
# for loop here
fh.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...