[16/04/2025] Обновлен скрит, добавлены проценты для выбора гендера с ориентацией на возраст
This commit is contained in:
parent
51f5d2df11
commit
77c94b4929
37
main.py
37
main.py
@ -28,7 +28,7 @@ def generate_random_birthday(years_old_from, years_old_to):
|
||||
random_day = date.fromordinal(random.randint(start_date, end_date))
|
||||
|
||||
# из случайной даты за прошлый год вычитаем случайный возраст в границах years_old_from и years_old_to
|
||||
return random_day.replace() - timedelta(days=years_old*365)
|
||||
return years_old, random_day.replace() - timedelta(days=years_old*365)
|
||||
|
||||
|
||||
def generate_random_snils():
|
||||
@ -71,10 +71,14 @@ if __name__ == '__main__':
|
||||
# гендер и соответствующее окончания Отчества и %, при котором будет выбран первый элемент списка
|
||||
gender_list = [{"gender":"male", "patronymic_postfix":"вич"},
|
||||
{"gender":"female", "patronymic_postfix":"овна"}]
|
||||
percent_for_first_element = 46.47
|
||||
# процент что человек будет мужчиной по возрастным категориям
|
||||
percent_for_male_more_0y = 52.5
|
||||
percent_for_male_more_25y = 46
|
||||
percent_for_male_more_50y = 25
|
||||
percent_for_male_more_75y = 10
|
||||
|
||||
# номер телефона (идет инкремент 1 после каждого использования) и окончание почты
|
||||
mobile_global = 1000001
|
||||
mobile_global = 89991000000
|
||||
email_global = "@test.test"
|
||||
|
||||
# создаем файл и добавляем хедеры
|
||||
@ -83,24 +87,33 @@ if __name__ == '__main__':
|
||||
|
||||
# создаем пул по размеру равный pool_len
|
||||
for i in range(pool_len):
|
||||
temp_gender = gender_list[0] if (round(random.uniform(1, 100), 2) <= percent_for_first_element) else gender_list[1]
|
||||
|
||||
# выбор возраста и процента для выбора гендера
|
||||
years_old, birthday = generate_random_birthday(18, 99)
|
||||
if years_old <= 25:
|
||||
temp_percent = percent_for_male_more_0y
|
||||
elif years_old <= 50:
|
||||
temp_percent = percent_for_male_more_25y
|
||||
elif years_old <= 75:
|
||||
temp_percent = percent_for_male_more_50y
|
||||
else:
|
||||
temp_percent = percent_for_male_more_75y
|
||||
|
||||
temp_gender = gender_list[0] if (round(random.uniform(1, 100), 2) <= temp_percent) else gender_list[1]
|
||||
gender = temp_gender["gender"]
|
||||
|
||||
first_name = generate_random_string(abc_ru, random.randint(4, 6)).capitalize()
|
||||
last_name = generate_random_string(abc_ru, random.randint(6, 10)).capitalize()
|
||||
patronymic = generate_random_string(abc_ru, random.randint(6, 10)).capitalize() + temp_gender["patronymic_postfix"]
|
||||
|
||||
gender = temp_gender["gender"]
|
||||
|
||||
birthday = generate_random_birthday(18, 99)
|
||||
|
||||
mobile = f"8999{str(mobile_global)[0:3]}{str(mobile_global)[3:5]}{str(mobile_global)[5:7]}"
|
||||
mobile_global +=1
|
||||
|
||||
email = generate_random_string(abc_en, random.randint(10, 20)) + email_global
|
||||
|
||||
snils = generate_random_snils()
|
||||
snils_f = f"{snils[0:3]}-{snils[3:6]}-{snils[6:9]} {snils[9:11]}" # форматирование снилса для вывода
|
||||
|
||||
file.write(f"{first_name},{last_name},{patronymic},{gender},{birthday},{mobile},{email},{snils}\n")
|
||||
mobile_global += 1 # инкремент чтобы обновить глобальный номер
|
||||
|
||||
file.write(f"{first_name},{last_name},{patronymic},{gender},{birthday},{mobile_global},{email},{snils_f}\n")
|
||||
|
||||
# закрываем работу с файлом
|
||||
file.close()
|
||||
|
Loading…
Reference in New Issue
Block a user