我将如何搜索特定名称的文本文件,并使用 Python 打印整行?

How would I search a text file for a specific name, and print the whole line with Python?

我的代码目前是:

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

我的问题是它一直打印出“不正确的信息”,而不是打印出包含 cpu 名称的整行。

readlines() returns 一个字符串列表,其中列表的每个元素都是文本文件中的整行。例如,在此文本文件上使用 readlines...

bob
joe
emily

将创建列表 ['bob\n', 'joe\n', 'emily\n']

除非 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 块,因为它只会为没有正确字符串的每一行一遍又一遍地打印“不正确的信息”。

假设我有一个文件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