How to generate fake name using length python Faker package

Viewed 3840

I wanted to generate a fake name of length 10 using Faker python package.

from faker import Faker
fake = Faker()
print(fake.name())

it generates a fake name of any length, but I wanted to Generate a name of length 10.

is there any way to generate a name of length 10 using Faker or set length 10 before generating fake data ?

3 Answers

You could write a loop:

from itertools import count
from faker import Faker

faker = Faker()

names = (faker.name() for _ in count())

name = next(name for name in names
            if len(name) == 10)

No, but it is rather easy to create a generator that filters only length 10 results from Faker:

import faker, itertools

def conditional_fake(cond):
    fake = fake.Faker()
    while True:
        x = fake.name()
        if cond(x):
            yield x

# print 20 names of length 10
for n in itertools.islice(conditional_fake(lambda name: len(name)==10), 20):
    print(n)
Related