Я пытаюсь объединить несколько файлов .txt на иврите из одной папки в один файл. Кодировка cp1255 для иврита. Я указал кодировку, поэтому файл открывается успешно, но кодировка завершается ошибкой при попытке записать строку в файл. Если я не укажу кодировку в команде открытия, само открытие завершится ошибкой (в строке 7).
dirLoc="source/folder"
import os
files=os.listdir(dirLoc)
for f in files:
if f.endswith('.txt'):
print(f)
data=open(dirLoc+'/'+f, 'r', encoding="cp1255")
out=open("outPut.txt", 'a')
for line in data:
out.write(line)
data.close()
out.close()
Ошибка, которую я получаю, является стандартной: UnicodeDecodeError: кодек 'charmap' не может декодировать байт X в позиции Y: сопоставление символов с неопределенным
Редактировать: Поигравшись с этим еще немного, проблема, похоже, определенно связана с записью строки на иврите в файл .txt. Это верно, даже если я пересохраню файл в другом формате (например, ANSI или utf-8) и соответствующим образом изменю кодировку. Он также отлично работает с файлами .txt на английском языке.