检查行Python中是否存在列表中的字符串

时间:2018-03-15 07:34:17

标签: python string

我有一个单词列表['Ip', 'Name', 'Error']。读取日志文件, 该脚本应该测试该行是否包含列表中的一个单词。 没有成功'如果排队'......任何想法?

4 个答案:

答案 0 :(得分:0)

这可能会有所帮助。迭代您的检查清单,并在列中查看列表元素。

<强>实施例

 for i in ['Ip', 'Name', 'Error']:
     if i in line:
         print "Ok!!!!"

答案 1 :(得分:0)

你可以尝试这样的事情。

list(set(line.split()) & set(my_list))

这将返回行和列表中存在的单词列表。 希望有所帮助。

答案 2 :(得分:0)

检查一下。

def getIndexLinesOfWords(filename,word_list):
    infile = open(filename, 'r')
    dct = {}
    count = 0
    for line in infile:
        count += 1
        newLine = line.replace('\n', ' ')
        if newLine == ' ':
            continue
        split_line = newLine.split()
        for word in word_list:
            if word in split_line:
                if word in dct:
                    dct[word] += [count]
                else:
                    dct[word] = [count]
    for word in word_list:
        print('{:12} {}'.format(word,dct[word]))
    infile.close()

filename = "C:/Users/fff/Desktop/log.txt"
word_list = ["lp", "error", "name"]
getIndexLinesOfWords(filename,word_list)

答案 3 :(得分:0)

您可以尝试使用过滤器:

data=['Ip', 'Name', 'Error']

print(list(filter(lambda x:[True for line in open('file.txt','r') if x in line],data)))