如何计算一个文件中有多少字没有出现?

2024-06-25 22:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有四个包含单词的文本文件,我试图计算这两个文件没有共同点的单词数(出现在文件A中而不是文件B中的单词数)

假设文件A.txt包含以下内容: apples bananas monkeys treats plays ball puppy hurray

文件B.txt包含以下内容:monkeys like to eat bananas 文件C.txt包含以下内容:the dog plays with the ball 文件D.txt包含以下内容:cats like treats

文件B.txt、C.txt和D.txt都与文件a.txt位于单独的文件夹中

预期的结果是A.txt中没有出现在其他三个文件中的单词数,因此3(对于苹果、小狗和hurray)

以下是到目前为止我得到的信息:

import glob

f_a = open("folder_1/A.txt")
a = f_a.read().split()

dic = {}

for path in glob.glob("folder_2/*"):
    f_b = open(path)
    b = f_b.read().split()

    a_set = set(a)
    b_set = set(b)

    dif = a_set.difference(b_set)

    dic = len(dif)

print(dic)

打印结果是7,即使我在某种情况下运行它。我希望它只返回A.txt中其他三个文件中没有出现的字数


Tags: 文件thetxtopen单词globliketreats
1条回答
网友
1楼 · 发布于 2024-06-25 22:40:21
import glob

f_a = open("folder_1/A.txt")
a = f_a.read().split()

# Do this outside the loop, since this set does not change.
a_set = set(a)

b_set = set()
for path in glob.glob("folder_2/*"):
    f_b = open(path)
    b = f_b.read().split()

    # Accumulate a set across ALL files.
    b_set.update(b)

# Set difference between a and all b.
dic = len(a_set.difference(b_set))
print(dic)

相关问题 更多 >