All original content is created in Ukrainian. Not all content has been translated yet. Some posts may only be available in Ukrainian.Learn more

Генерація фейкових даних з Faker

Post cover: Генерація фейкових даних з Faker
This content has not been translated yet.We're showing the original Ukrainian content below.
У цій статті ми поговоримо про бібліотеку Faker, яка дозволяє генерувати фейкові дані. Ця бібліотека може бути корисною при тестуванні, заповненні баз даних і т. д.
Встановлення
Перед початком використання функцій даної бібліотеки її треба встановити. Команди для встановлення цієї бібліотеки для різних ОС наведені нижче.
Windows:
pip install faker
MacOS:
pip3 install faker
Linux:
pip install faker
Можливості бібліотеки
Тепер настав час розглянути можливості даної бібліотеки. Вона здатна генерувати великий спектр інформації і зараз ми поглянемо на реалізацію її функцій.
Опис функцій:
  • first_name() — генерує випадкове ім’я;
  • last_name() — генерує випадкове прізвище;
  • first_name_male() — генерує випадкове чоловіче ім’я;
  • first_name_female() — генерує випадкове жіноче ім’я;
  • name() — генерує ім’я та прізвище;
  • country() — генерує назву випадкової країни;
  • city() — генерує назву випадкового міста;
  • text() — генерує випадковий текст;
  • email() — генерує випадкову адресу електронної пошти;
  • latitude() — генерує випадкове значення широти;
  • longitude() — генерує випадкове значення довготи;
  • url() — генерує випадкову адресу сайту;
  • address() — генерує випадкову фізичну адресу проживаня;
  • ipv4() — генерує випадкову IP адресу версії 4;
  • mac_adress() — генерує випадкову мак адресу.
Приклади застосування функцій
Приклад використання функцій first_name(), last_name(), first_name_male(), first_name_female(), name(), country(), city(), latitude(), longitude(), address(), ipv4(), mac_adress().
Тут ми спочатку імпортували бібліотеку, а далі створили екземпляр об’єкта fake.
from faker import Faker
fake = Faker()
Створили функцію, яка генерує фейкові дані. Конкретно у цій функції ми згенерували ім’я та прізвище чоловічої особи:
def male_person_info():
    print("Ім'я:", fake.first_name_male())
    print("Прізвище:", fake.last_name_male())
    print("Країна:", fake.country())
    print("Місто:", fake.city())
    print("Адреса:", fake.address())
    print("Широта та довгота:", fake.latitude(), fake.longitude())
    print("IP адреса:", fake.ipv4())
    print("Mac адреса:", fake.mac_address())


male_person_info()
Отримали такий результат:
Ім'я: Brandon
Прізвище: Cannon
Країна: Egypt
Місто: Chelseafort
Адреса: 351 Martin Circle Suite 766
Joshuamouth, CT 11106
Широта та довгота: -43.8221095 -80.241553
IP адреса: 153.50.143.162
Mac адреса: 38:09:21:5f:3e:97
Тепер згенеруємо все тіж дані, але для жіночої особи. Для цього ми створили окрему функцію:
def female_person_info():
    print("Ім'я:", fake.first_name_female())
    print("Прізвище:", fake.last_name_female())
    print("Країна:", fake.country())
    print("Місто:", fake.city())
    print("Адреса:", fake.address())
    print("Широта та довгота:", fake.latitude(), fake.longitude())
    print("IP адреса:", fake.ipv4())
    print("Mac адреса:", fake.mac_address())


female_person_info()
У підсумку отримали такі дані:
Ім'я: Linda
Прізвище: Ramsey
Країна: Luxembourg
Місто: New Brianna
Адреса: 98035 Reyes Spring
Jennifermouth, VT 09997
Широта та довгота: -61.4782225 -56.086526
IP адреса: 145.77.94.128
Mac адреса: 16:0f:71:24:bb:4c
Також, як вже було зазначено раніше, можна просто генерувати ім’я та прізвище або одразу повне ім’я без прив’язки до конкретної статі завдяки тим же функціям first_name(), last_name(), name(). Нижче наведений черговий приклад:
print("Ім'я:", fake.first_name())
print("Прізвище:", fake.last_name())
print("Повне ім'я:", fake.name())
Результат:
Ім'я: Judy
Прізвище: Lopez
Повне ім'я: Todd Allen
Далі розглядаємо функції text(), email(), url(). Їх реалізацію можна побачити тут:
print(f"Текст: {fake.text()}\n"
      f"================================\n"
      f"Електронна пошта: {fake.email()}\n"
      f"Веб адреса: {fake.url()}")
Отриманий результат:
Текст: Available address miss. Especially for time nice rate find fire.
Tonight different dog operation box TV benefit add. Feeling owner three owner window enter show. Whatever what owner.
================================
Електронна пошта: [email protected]
Веб адреса: http://www.williams-williamson.com/
Тепер хочу показати одну особливість — у бібліотеці можна зробити локалізацію. Тобто щоб дані відображалися саме обраною нами мовою. Таким чином, передавши у Faker() в якості параметра строку “uk_UA“ ми отримаємо українську локалізацію. Це показано нижче:
from faker import Faker
fake = Faker("uk_UA")
Повернемося до наших функцій male_person_info() та female_person_info(), щоб поглянути на їх результати з українською локалізацією.
Ім'я: Євген
Прізвище: Артюшенко
Країна: Лесото
Місто: хутір Новоград-Волинський
Адреса: вулиця Палубний, буд. 8, Лубни, 23328
Широта та довгота: -24.4888925 105.932463
IP адреса: 138.15.83.170
Mac адреса: 66:a1:4d:81:8f:6f
Ім'я: Ірина Прізвище: Аронець Країна: Болівія Місто: місто Білогірськ Адреса: узвіз Мала Садова, буд. 635 кв. 6, Бучач, 54468 Широта та довгота: -80.961546 2.427819 IP адреса: 74.93.171.177 Mac адреса: 16:40:7d:18:29:a4
Як бачимо, дані відображаються на український лад. На цьому все. Насправді ця бібліотека має набагато більше функцій, ніж я показав у цій статті.
Сподіваюсь ця стаття сподобається вам! Якщо ви хочете читати більше матеріалу від мене — долучайтеся до мого телеграм каналу. Дякую за увагу!

This post doesn't have any additions from the author yet.

Що таке Colorama та як надавати тексту колір завдяки ній?
04 Sep 22:37

Що таке Colorama та як надавати тексту колір завдяки ній?

Magnifique Code
Magnifique Code @mystiquelord123
Скорочення посилань за допомогою бібліотеки pyshorteners
06 Sep 13:57

Скорочення посилань за допомогою бібліотеки pyshorteners

Magnifique Code
Magnifique Code @mystiquelord123
Працюємо з буфером обміну за допомогою pyperclip
10 Sep 11:01

Працюємо з буфером обміну за допомогою pyperclip

Magnifique Code
Magnifique Code @mystiquelord123