0

我写了一篇文章,想用python数一下文章中的单词。我将这篇文章粘贴到一个 python 文本文件中并保存了它。我编写了一个程序来遍历文本文件并计算单词,但它一直给我以下错误:"UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 62: character maps to <undefined>"

这是代码:

def counter(file):
    with open(file) as word:
        count=0
        for i in word:
            words=i.split()
            count+=words
        print(count)

文件名为essay.txt

它不会工作。即使我尝试在 shell 上打开essay.txt,它也不起作用。我尝试了以下方法:

infile = open('essay.txt')
word=infile.read()
print(word)

这也不起作用。我应该怎么办?请帮忙。谢谢

4

2 回答 2

1

尝试

open('essay.txt', encoding ='utf-8')

可以检测到错误的编码类型。如果不是 utf-8 试试 latin1

于 2013-10-31T19:35:37.897 回答
0

我试图重现您的问题,但我无法这样做。我essay.txt以编码样式保存文件utf-8,因此可能与您使用的设置不同。为我工作的代码如下。

def counter(file):
    with open(file) as word:
        count=0
        for i in word:
            words=i.split()
            count += len(words)
        print(count)
counter("essay.txt")

我做了一些改变。对于每个iin word,我相信您希望该len()函数返回该行的总字数。然后,您可以将行中的单词数添加到文档的总计数中。这适用于我现在使用 Python 3.3.0。如果我误解了,请告诉我!

谢谢。

于 2013-11-02T01:12:07.627 回答