UnicodeDecodeError: недопустимый байт продолжения при чтении имен файлов в Python - PullRequest
0 голосов
/ 15 мая 2018

Я просмотрел все различные вопросы, которые уже были здесь размещены, и попробовал упомянутые решения, но просто не смог заставить мой код работать.

Я пытаюсь прочитать имена файлов в каталогах, используя python, но продолжаю сталкиваться со следующей ошибкой.

UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xe8 в позиции 907: недопустимый байт продолжения

Код

from __future__ import print_function
import sklearn.datasets
import nltk

dataset = sklearn.datasets.load_files('data/', shuffle='False')
categories = dataset.target_names

from os import listdir
from os.path import isfile, join

for c in categories:
    directory_path = 'data/'+c
    onlyfiles = [f for f in listdir(directory_path) if isfile(join(directory_path, f))]
    print ("Level 1 Intent : ", c)
    print ("---------------------------------------")
    for file_name in onlyfiles:
        file_path = directory_path+'/'+file_name
        with open(file_path) as f:
            first_line = f.readline()
            print("Level 2 Intent for ", c, " : ", first_line)

            stopwords = nltk.corpus.stopwords.words('english')
            from nltk.stem.snowball import SnowballStemmer
            stemmer = SnowballStemmer("english")

Хотя я получаю вывод имен файлов, напечатанных по мере необходимости, я сталкиваюсь с этим сообщением об ошибке.

Пример вывода

...
Level 2 Intent for  Presidents  :  Gerald Ford
Level 1 Intent :  Scientists
---------------------------------------
Level 2 Intent for  Scientists  :  Alessandro_Volta
Level 2 Intent for  Scientists  :  Michael_Faraday
Level 2 Intent for  Scientists  :  James_Watt
Level 2 Intent for  Scientists  :  Nikola_Tesla
...

Примеры имен файлов

1.clean
2.clean
S08_set3_a1.txt.clean
S08_set3_a8.txt.clean

Любые предложения на этот счет будут высоко оценены.

...