Транслитерация содержимого файла с Python

У меня есть похожая запись о транслитерации имён файлов. Здесь же будет транслитерировано само содержимое файлов.

Ниже будет описано, как заменить в файле все кириллические символы на английские с помощью python3. Благодаря простоте скрипт легко модифицировать и подстроить под свои нужды.

transliterator.pyСкачать#! /usr/bin/env python#coding=utf8import osimport fileinputdef latinizator(letter, dic): for i, j in dic.items(): letter = letter.replace(i, j) return letterlegend = {‘а’:’a’,’б’:’b’,’в’:’v’,’г’:’g’,’д’:’d’,’е’:’e’,’ё’:’yo’,’ж’:’zh’,’з’:’z’,’и’:’i’,’й’:’y’,’к’:’k’,’л’:’l’,’м’:’m’,’н’:’n’,’о’:’o’,’п’:’p’,’р’:’r’,’с’:’s’,’т’:’t’,’у’:’u’,’ф’:’f’,’х’:’h’,’ц’:’ts’,’ч’:’ch’,’ш’:’sh’,’щ’:’shch’,’ъ’:’y’,’ы’:’y’,’ь’:»‘»,’э’:’e’,’ю’:’yu’,’я’:’ya’,’А’:’A’,’Б’:’B’,’В’:’V’,’Г’:’G’,’Д’:’D’,’Е’:’E’,’Ё’:’Yo’,’Ж’:’Zh’,’З’:’Z’,’И’:’I’,’Й’:’Y’,’К’:’K’,’Л’:’L’,’М’:’M’,’Н’:’N’,’О’:’O’,’П’:’P’,’Р’:’R’,’С’:’S’,’Т’:’T’,’У’:’U’,’Ф’:’F’,’Х’:’H’,’Ц’:’Ts’,’Ч’:’Ch’,’Ш’:’Sh’,’Щ’:’Shch’,’Ъ’:’Y’,’Ы’:’Y’,’Ь’:»‘»,’Э’:’E’,’Ю’:’Yu’,’Я’:’Ya’,}### Транслитерировать содержимое ВСЕХ файлов из папки#for filename in os.listdir(‘.’):# with fileinput.FileInput(filename, inplace=True, backup=’.bak’) as f:# for line in f:# print(latinizator(line, legend), end=»)### Чтобы транслитерировать содержимое одного файла yourfilename.txtwith fileinput.FileInput(‘yourfilename.txt’, inplace=True, backup=’.bak’) as f: for line in f: print(latinizator(line, legend), end=»)

Чтобы заменить все кириллические буквы на латиницу в файле yourfilename.txt, надо положить скрипт transliterator.py в одну папку с этим файлом и выполнить

user $python3 transliterator.py

При этом автоматически будет создана резервная копия (backup) оригинального файла yourfilename.txt.bak.
P.S. Функцию для замены ключа словаря на его значение подсмотрел тут.