посмотрите внимательнее на то, что находится в PanGeneratorType (). Вы называете это 1000 раз. инициализация 1000 Faker (), каждая из которых запускает fake.credit_card_number () 1 раз.
def PanGeneratorType():
fake = Faker()
Card_Type = ['amex','mastercard','visa16','visa19','discover']
Pan_Num = fake.credit_card_number(random.choice(Card_Type))
return Pan_Num
t = time.time()
for i in range(1000):
Card_Num = PanGeneratorType()
print("Time taken: " + str(time.time()-t))
Time taken: 85.47297310829163
Намного быстрее создать 1 Faker () и дать ему 1000 заданий, чем создать 1000 Faker () по 1 заданию.
def PanGeneratorType(n):
fake = Faker()
Card_Type = ['amex','mastercard','visa16','visa19','discover']
result = []
for i in range(n):
result.append(fake.credit_card_number(random.choice(Card_Type)))
return result
t = time.time()
Card_Numbers = PanGeneratorType(1000)
print("Time taken: " + str(time.time()-t))
#for cc in Card_Numbers:
#print(cc)
#write to file
#etc etc
Time taken: 0.11200523376464844