如何修复UnicodeDecodeError? (我尝试过环顾四周,但这是.txt专用的)

时间:2019-06-10 15:33:29

标签: python decoding

我正在尝试使用os和glob模块访问带有.txt文件的文件夹,但是当我尝试读取()文件时,该文件夹会卡住。我可以正确列出文件名,但是每当我尝试访问文本时,我都会收到UnicodeDecodeError。

目标是创建一个dict,键为文件名,列表中文本文件中的单词为值。我确定我的大部分代码都是垃圾,但是这个特定的问题是我在atm上的想法

我尝试单独使用glob和os-module,似乎没有任何效果。我已经成功分别打开了每个文件,但是当我尝试使用模块时(这是必需的),我得到了错误。我已打开所有文档,以确保正确的UTF-8编码。

从文件中创建列表的程序:

def indeks_ord(tekstfil):

    with open(tekstfil, "r", encoding="utf-8") as f:

        f = f.read()
        f = f.split()
        liste = []
        for words in f:
            words = words.strip(",.!=/&-:;")
            words = words.lower()
            if words in liste:
                continue
            else:
                liste.append(words)

        return liste

获取错误的程序。打印长度功能只是暂时的,还有很多工作要做-但是它可以解决问题。

import glob
import os
import indeksfil

def indeks_dict():

    path = "Tekstfiler"
    fuld_dict = {}
    for filename in glob.glob(os.path.join(path, '*.txt')):
        print(len(indeksfil.indeks_ord(filename)))

我希望程序从现在开始打印所有列表。错误消息粘贴在下面:

Traceback (most recent call last):

  File "/Users/myname/Dropbox/dir/dict_fil.py", line 12, in <module>
    indeks_dict()

  File "/Users/myname/Dropbox/dir/dict_fil.py", line 9, in indeks_dict
    print(len(indeksfil.indeks_ord(filename)))

  File "/Users/myname/Dropbox/di/indeksfil.py", line 4, in indeks_ord
    f = f.read()

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf8 in position 156: invalid start byte

0 个答案:

没有答案