Как бы я искал в текстовом файле определенное имя и печатал всю строку с помощью Python?

#python #text-files

Вопрос:

Мой код в настоящее время:

 def GrabCPUInfo():  with open("cpu_list.txt", "r") as file:  line = file.readlines()  if cpu in line:  print(line)  else:  print("Incorrect information")  

Моя проблема в том, что он просто продолжает выводить «Неверную информацию» вместо того, чтобы выводить всю строку, содержащую имя процессора.

Комментарии:

1. В чем ценность cpu ?

2. Таким образом, он проверит, соответствует ли строка точному значению cpu . Дополнительные символы не допускаются. Может быть, вы хотите повторить строки?

Ответ №1:

Допустим, у меня есть файл cpu_list.txt со значением

 CPU 1: Example CPU 2: Example CPU 3: Example  

Вы могли бы сделать что-то вроде

 with open('cpu_list.txt','r') as f:  # Read content as well removing n  content = [line.strip() for line in f.readlines()]   # print(content)  # ['CPU 1: Example', 'CPU 2: Example', 'CPU 3: Example']  for line in content:  if 'CPU 1' in line:  print(line)  else:  print('Invalid Info')  break  

Вывод

 CPU 1: Example  

Ответ №2:

readlines() возвращает список строк, в котором каждый элемент списка представляет собой целую строку в текстовом файле. Например, используя readlines этот текстовый файл…

 bob joe emily  

создал бы список ['bobn', 'joen', 'emilyn']

Если cpu только не соответствует точно всей строке (включая символ новой строки), in подобное использование не сработает. Вы все еще можете использовать in отдельные строки, чтобы проверить, содержит ли строка cpu . Попробуйте что-нибудь вроде этого:

 def GrabCPUInfo():  with open("test.txt", "r") as file:  lines = file.readlines()  for line in lines:  if cpu in line:  

Я удалил else блок, потому что он просто печатал бы «Неверную информацию» снова и снова для каждой строки, в которой не было правильной строки.