Небольшой скрипт, предназначенный для генерации email-адреса по заданному шаблону из русскоязычного ФИО. Использует библиотеку iuliia для транслитерации.
usage: fio2mail [-h] (-p pattern | -t) [-f FILE] [-f1 FILE] [-f2 FILE] [-f3 FILE] [-o FILE] [-ng]
Скрипт транслитерирует ФИО 16-ю разными стандартами и преобразует в строку по паттерну, задаваемому флагом -p.
Например, паттерн '{3}_{1:.1}{2:.1}@example.ru' преобразует 'Иван Николаевич Городецкий' в
gorodeckii_in@example.ru
gorodeckij_in@example.ru
gorodeckijj_in@example.ru
...
{1}, {2} и {3} означают номера слов в строке. {1:.1} - только первый символ первого слова.
Если в данных отсутствуют какие-либо составляющие ФИО и не установлен флаг -ng, скрипт будет генерировать все возможные варианты, добавляя одну латинскую букву вместо недостающего слова, либо подставляя значения из соответствующих словарей (-f1, -f2 и -f3), если последние указаны.
optional arguments:
-h, --help show this help message and exit
-p pattern Паттерн генерации строки. Подается напрямую в функцию format, так что аккуратнее
-t Траслитерация любого текста напрямую без иных преобразований
-f FILE Читать ФИО из файла. Если не задан, читает stdin, в том числе интерактивно. Но это скорее баг, чем
фитча xD
-f1 FILE Cписок вариантов для первого слова
-f2 FILE Cписок вариантов для второго слова
-f3 FILE Cписок вариантов для третьего слова
-o FILE Записать результаты в файл
-ng Не подставлять недостающие имена и инициалы
Формат входных данных:
Принимает кирилицу и латиницу в перемешку. Транслитерирована будет только кирилица, строки по паттерну будут сгенерированы для всего. Рекомендуется соблюдать последовательность Ф-И-О, так как в большинстве случаев неизвестна и требует подбора именно первая буква отчества. Например:
Иванов Сергей Николаевич
Сергеенко Николай
Matrosov Anton
Можно поставить символ '?' вместо неизвестного слова - скрипт будет его подбирать. Например:
Александр Сергеевич Пушкин
Антон ? Городецкий
Примеры запусков:
echo 'Сергей Николаевич Иванов\nАнтон ? Городецкий' | fio2mail.py -p '{3}_{1:.1}{2:.1}@example.ru'
echo 'Иван Николаевич Городецкий' | fio2mail.py -t
fio2mail.py -p '{2}.{1}@random.mail' -f names.txt
Обычно проиходит что-то типо того:
┌──(vinzekatze㉿kali)-[~/Workspace]
└─$ cat ./names.txt
Потапенко Михаил Иванович
Швецова Людмила Игоревна
┌──(vinzekatze㉿kali)-[~/Workspace]
└─$ fio2mail -f ./names.txt -p '{2:.1}.{3:.1}.{1}@mail.ru'
m.i.potapenko@mail.ru
l.i.chvetsova@mail.ru
l.i.shvecova@mail.ru
l.i.shveczova@mail.ru
l.i.shvetcova@mail.ru
l.i.shvetsova@mail.ru