【问题标题】:In Python, searching a text file for multiple words and printing the corresponding lines在 Python 中,在文本文件中搜索多个单词并打印相应的行
【发布时间】:2018-12-20 05:20:13
【问题描述】:

我有一个要搜索的句子列表。我想打印包含我的搜索词的行。此代码有效:

fruit_list = open('fruitlist.txt')
for line in fruit_list:
    if 'apple' in line or 'banana' in line or 'orange' in line:
        print (line)

但这可能很乏味;特别是如果我希望我的搜索词列表更长。我想制作一个搜索词列表,并使用它来搜索文档并打印该行。

search_words=['apple','banana','orange','lemon']
for line in fruit_list:
    if item in search_words in line:
        print (line)

此代码不起作用,因为未定义“项目”。反正我能搞定这件事吗?我是python的新手。

【问题讨论】:

    标签: python string list file search


    【解决方案1】:

    试试这个:

    fruit_list = open('fruitlist.txt')
    
    search_words = ['apple', 'banana', 'orange', 'lemon']
    
    for line in fruit_list:
        if any(word in line for word in search_words):
            print(line)
    

    【讨论】:

      【解决方案2】:
      # with Regular Expression 
      import re
      
      fruit_list = open('test.txt')
      search_words = ['apple', 'banana', 'orange', 'lemon']
      
      patten = re.compile("(.*(apple|banana|orange|lemon)(.*))")
      
      for i in [re.search(patten,line).groups() for line  in      fruit_list  if re.search(patten,line) != None]: print(i)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多