1

我正在分析一些文本文件,并且每次在文件中找到该单词时,我都想提取该特定单词。

想象一下,我在文件中有“Sports”,然后我想根据列表提取单词“SPORTS”。

我有以下代码:

content = ['Sports', 'Nature', 'Football']
path = filename
with open(path) as auto:
    for line in auto:
        if any(x.lower() in line.lower() for x in content):
            print(line)

我的文本文件包含以下内容:

Sports TV is the home of football videos. 
Complex game to follow.
home of football

使用我的代码,我打印所有带有“体育”和“足球”的行:

Sports TV is the home of football videos. 

home of football

但我想看到以下结果:

Sports
football

如何仅打印 List 上的单词而不是所有行?

谢谢!

4

2 回答 2

1

列表.txt:

Sports TV is the home of football videos. 
Complex game to follow.
home of football

因此

content = ['Sports', 'Nature', 'Football']
path = 'list.txt'

with open(path) as auto:
    print([[x.lower() for x in content if x.lower() in line.lower()] for line in auto])

输出

[['sports', 'football'], [], ['football']]

第 1 行有sportsfootball

第 2 行没有来自内容列表的匹配元素

3号线有football

于 2019-04-02T15:25:43.803 回答
0

您现在正在打印整行

尝试:

content = ['Sports', 'Nature', 'Football']
path = filename
with open(path) as auto:
    for line in auto:
        for x in content:
            if x.lower() in line.lower():
                print(x)
于 2019-04-02T15:14:31.267 回答