Преобразование текстовых файлов DOS в Unicode с использованием Python
Я пытаюсь написать приложение на Python для преобразования старых текстовых файлов кодовой страницы DOS в их Unicode-эквивалент. Теперь я сделал это перед использованием Turbo Pascal, создав таблицу поиска, и я уверен, что то же самое можно сделать с помощью словаря Python. Мой вопрос: как мне индексировать в словарь, чтобы найти символ, который я хочу преобразовать, и отправить эквивалентный Unicode в выходной файл Unicode?
Я понимаю, что это может быть повторением подобного вопроса, но ничто из того, что я искал здесь, не соответствует моему вопросу.
2 ответа
У Python есть кодеки для преобразования:
#!python3
# Test file with bytes 0-255.
with open('dos.txt','wb') as f:
f.write(bytes(range(256)))
# Read the file and decode using code page 437 (DOS OEM-US).
# Write the file as UTF-8 encoding ("Unicode" is not an encoding)
# UTF-8, UTF-16, UTF-32 are encodings that support all Unicode codepoints.
with open('dos.txt',encoding='cp437') as infile:
with open('unicode.txt','w',encoding='utf8') as outfile:
outfile.write(infile.read())
Вы можете использовать стандартную сборку decode
метод bytes
объекты:
with open('dos.txt', 'r', encoding='cp437') as infile, \
open('unicode.txt', 'w', encoding='utf8') as outfile:
for line in infile:
outfile.write(line)