Преобразование кодировки
Приведён один из способов преобразования кодировки, причём наиболее неприятный момент, на который хочется обратить внимание, что, по всей видимости, не все символы кодировки DOS (cp866) присутствуют в кодировке Windows (cp1251).Поэтому пришлось добавить преобразование
Код PYTHON:
одного такого символа , который встречался в файле (могут быть и другие, более общий вариант следует делать либо через словарь, либо с помощью обработки исключений)
s=i.replace("│","|")
Ещё одно предупреждение: у DOS-файлов в конце строки присутствует не один, а пара специальных символов "\r\n"
Код PYTHON:
# Программа преобразования файла в кодировке DOS (cp866) в кодировку Windows (cp1251) import codecs def main(): filename = 'dat.res' f = open(filename, "rb")#Читаем файл в двоичном (бинарном - b) формате data=f.read() f.close() text = data.decode('cp866', 'replace').split('\n')#Преобразуем в текст filename = 'dat.txt' f = open(filename, "w") for i in text: print(i) s=i.replace("│","|") #Заменяем символ "│" кодировки cp866, который отсутствует в кодировке cp1251 f.write(s+" ") f.close() if __name__ == '__main__': main()