#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
блок, потому что он просто печатал бы «Неверную информацию» снова и снова для каждой строки, в которой не было правильной строки.