Ошибка кодирования при объединении нескольких текстовых файлов в Python - PullRequest
0 голосов
/ 13 октября 2019

Я хочу объединить несколько файлов, используя python3. Все файлы находятся в одной папке с расширением .txt. В папке есть файлы, начинающиеся со специальных символов, таких как dot (.) и braces() и т. Д. Код и набор данных находятся в отдельных папках. Пожалуйста, помогите.

Я попытался сделать следующее:

#encoding:utf-8
import os
from pprint import pprint
path = 'F:/abc/intt'
file_names = os.listdir(path)
with open('F://hi//Datasets//megef_fil.txt', 'w', encoding = 'utf-8') as outfile:
   for fname in file_names:
       with open(os.path.join(path,fname)) as infile:
          for line in infile:
              outfile.write(line)

Ошибка в трассировке, с которой я столкнулся, выглядит примерно так:

File "C: \ Users \ Shanky \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ encodings \ cp1252.py ", строка 23, в декодировании, возвращает codecs.charmap_decode (input, self.errors, decoding_table) [0] UnicodeDecodeError: 'кодек charmap 'не может декодировать байт 0x8d в позиции 31: символ отображается на

У меня абсолютно нет никакой подсказки, где я ошибаюсь. Пожалуйста, помогите мне в решении этой проблемы. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 октября 2019

похоже, что вы читаете свой инерфайл в байтах с неправильной кодировкой, попробуйте сделать:


with open(os.path.join(path,fname), mode="r", encoding="utf-8") as infile:

...