使用文本文件拼写错误计数时输出不正确

时间:2017-11-06 19:52:07

标签: python text enchant

我正在尝试使用python和enchant计算目录中许多文本文件中的拼写错误数。这是我的代码:

for file in os.listdir(path): 
    if file.endswith(".txt"):
       f = open(file, 'r', encoding = 'Latin-1')
       text = f.read()
       chkr.set_text(text)
       count = 0
       for err in chkr:
           count += 1
           print (file, count)

然而,我没有给我一个文件中所有总错误的计数,而是似乎得到了多次打印文件的累积计数,例如:

ca001_mci_07011975.txt 1
ca001_mci_07011975.txt 2
ca001_mci_07011975.txt 3
ca001_mci_07011975.txt 4
ca001_mci_07011975.txt 5
ca001_mci_07011975.txt 6
ca001_mci_07011975.txt 7
ca001_mci_07011975.txt 8

目录中只有一个名为ca001_mci_07011975的文件,所以我期待:

ca001_mci_07011975.txt 8

我不能为我的生活弄清楚我做错了什么!非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

for file in os.listdir(path): 
    if file.endswith(".txt"):
       f = open(file, 'r', encoding = 'Latin-1')
       text = f.read()
       chkr.set_text(text)
       errors_count = 0
       for err in chkr:
           errors_count += 1
       print (file, errors_count )

问题是,您实际上是为每个循环迭代打印的。另外,我将count变量更改为更相关的变量。