我将如何搜索特定名称的文本文件,并使用 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
我的代码目前是:
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