【问题标题】:How to generate fake name using length python Faker package如何使用长度 python Faker 包生成假名
【发布时间】:2020-08-28 02:34:03
【问题描述】:

我想使用Faker python 包生成一个长度为 10 的假名称。

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

它会生成一个任意长度的假名称,但我想生成一个长度为 10 的名称。

有没有什么方法可以在生成假数据之前使用 Faker 生成长度为 10 的名称或设置长度为 10 的名称?

【问题讨论】:

    标签: python python-3.x faker


    【解决方案1】:

    不,但是创建一个只过滤来自 Faker 的长度为 10 的结果的生成器相当容易:

    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)
    

    【讨论】:

      【解决方案2】:

      可以这样简单地完成:-

      fake = Faker()

      fake.pystr(min_chars=None, max_chars=10)

      请参阅此以获取更多信息:- https://faker.readthedocs.io/en/master/providers/faker.providers.python.html

      【讨论】:

      • 这会生成一个假字符串,而不是假名称。
      【解决方案3】:

      你可以写一个循环:

      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)
      

      【讨论】:

        猜你喜欢
        • 2019-06-18
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 2013-07-18
        • 2014-05-23
        • 2019-10-25
        • 2018-04-28
        • 1970-01-01
        相关资源
        最近更新 更多