如何从用户输入中搜索单词列表的文本文件并打印包含这些单词的行?

时间:2015-09-21 09:40:52

标签: python file python-3.x

我的查询是,我想从文本文件中搜索单词并打印包含这些单词的行。所有单词都以用户输入的形式给出。 不知怎的,我达到了这一点,它是输出没有。

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('')

1 个答案:

答案 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())。