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

Python 如何计算一个文件中有多少字没有出现?,python,Python,我有四个包含单词的文本文件,我试图计算这两个文件没有共同点的单词数(出现在文件A中而不是文件B中的单词数) 假设文件A.txt包含以下内容: 苹果 香蕉 猴子 对待 演奏 球 小狗 万岁 文件B.txt包含以下内容:猴子喜欢吃香蕉 文件C.txt包含以下内容:狗玩球 文件D.txt包含以下内容:cats-like-treats 文件B.txt、C.txt和D.txt都与文件a.txt位于单独的文件夹中 预期结果将是A.txt中的单词数,而这些单词数不会出现在其他三个文件中,因此3(适用于Appl

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

假设文件A.txt包含以下内容:
苹果
香蕉
猴子
对待
演奏
球
小狗
万岁

文件B.txt包含以下内容:
猴子喜欢吃香蕉
文件C.txt包含以下内容:
狗玩球
文件D.txt包含以下内容:
cats-like-treats

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

预期结果将是A.txt中的单词数,而这些单词数不会出现在其他三个文件中,因此
3
(适用于Apple、puppy和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,即使我在
liste.append(len(dif))
这种情况下运行它也是如此。我希望它只返回A.txt中其他三个文件中没有出现的字数

导入全局
f_a=打开(“文件夹_1/a.txt”)
a=f_a.read().split()
#在循环之外执行此操作,因为此集合不会更改。
a_集=集(a)
b_set=set()
对于glob.glob(“文件夹_2/*”)中的路径:
f_b=打开(路径)
b=f_b.read().split()
#在所有文件中累积一个集合。
b_集合更新(b)
#设置a和所有b之间的差值。
dic=透镜(a组差(b组))
打印(dic)
导入全局
f_a=打开(“文件夹_1/a.txt”)
a=f_a.read().split()
#在循环之外执行此操作,因为此集合不会更改。
a_集=集(a)
b_set=set()
对于glob.glob(“文件夹_2/*”)中的路径:
f_b=打开(路径)
b=f_b.read().split()
#在所有文件中累积一个集合。
b_集合更新(b)
#设置a和所有b之间的差值。
dic=透镜(a组差(b组))
打印(dic)

您能重复这个过程吗?设置a_Set=dif,然后更新值是否重复该过程?设置a_Set=dif,然后更新值您可以在这一点上进行优化,完全不用
b_Set
,使用
a_Set.difference\u update(b)
而不是
b_Set.update(b)
,最后只需使用
dic=len(a_Set)
即可计算结果。非常感谢!我疯狂地想把它弄得如此复杂,你可以在这方面进行一些优化,完全不用
b_集
,而是使用
a_集。差分更新(b)
而不是
b_集。更新(b)
,最后只需使用
dic=len(a_集)
即可计算结果。非常感谢!我想把事情弄得这么复杂,真是疯了