我的查询是,我想从文本文件中搜索单词并打印包含这些单词的行。所有单词都以用户输入的形式给出。 不知怎的,我达到了这一点,它是输出没有。
def sip(x):
print("====Welcome to SIP log Debugger ==== ")
file= input("Please Enter log File path: ")
search = input("Enter the Errors you want to search for(seperated with commas): ")
search = [word.strip() for word in search.lower().split(",")]
with open(file,'r') as f:
lines = f.readlines()
line = f.readline()
for word in line.lower().split():
if word in line:
print(line),
if word == None:
print('')
答案 0 :(得分:2)
您正在阅读所有行并将其保存到变量中:
lines = f.readlines()
然后你尝试再读一行:
line = f.readline()
但是你已经阅读了整个文件,所以没有什么可读的了,因此f.readline()
会返回''
。
接下来,您尝试遍历line
变量中的每个单词,这只是''
。
而不是所有这些,你应该使用for line in f:
遍历所有行,所以像这样:
with open(file, 'r') as f:
for line in f:
line = line.lower()
for word in search:
if word in line:
print(line)
我不确定您要对if word == None:
做什么,因为None
是一个字符串而line
是一部分,所以{永远不会word
这个词该字符串(您使用line.split()
)。