繁体   English   中英

在Python中,在文本文件中搜索多个单词并打印相应的行

[英]In Python, searching a text file for multiple words and printing the corresponding lines

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

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的新手。

尝试这个:

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)
# 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM