Skip to content

Latest commit

 

History

History
63 lines (53 loc) · 4.29 KB

README.md

File metadata and controls

63 lines (53 loc) · 4.29 KB

fio2mail

Небольшой скрипт, предназначенный для генерации email-адреса по заданному шаблону из русскоязычного ФИО. Использует библиотеку iuliia для транслитерации.

Help

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' преобразует 'Иван Николаевич Городецкий' в 
    [email protected]
    [email protected]
    [email protected]
    ...

{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'
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]