欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

Python实用模块(十七)Faker

实用模块 迷途小书童 5年前 (2020-01-28) 3626次浏览 0个评论

软硬件环境

  • windows 10 64bit
  • anaconda3 with python 3.7.4
  • Faker

视频看这里

此处是youtube的播放链接,需要科学上网。喜欢我的视频,记得订阅我的频道,点赞并分享,谢谢。

Faker简介

Faker是一个专门用来生成模拟数据的一个python库,利用它可以虚拟出各式各样的数据,用于调试、测试等。利用的Fakerprovider机制,我们甚至还可以自定义自己的模拟数据方法,实现Faker库中没有的功能。

安装

我们还是使用pip安装

pip install Faker

代码实践

我们使用ipython来进行代码演示,Faker中可模拟的数据非常非常的多,这里仅仅列举了常见的几个方法

C:\Users\admin>ipython.exe
Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from faker import Faker

In [2]: fake1 = Faker()

In [3]: fake1.name()
Out[3]: 'Chris Todd'

In [4]: fake1.first_name()
Out[4]: 'Laura'

In [5]: fake1.email()
Out[5]: 'bakerlaura@ramos-hull.com'

In [6]: fake1.url()
Out[6]: 'https://foster-donovan.com/'

In [7]: fake2 = Faker("zh_CN")

In [8]: fake2.name()
Out[8]: '周欢'

In [9]: fake2.first_name()
Out[9]: '帅'

In [10]: fake2.name()
Out[10]: '黄霞'

注意到,同一个方法(name()),每一次输出的结果是不一样的。如果想输出结果一样,可以这么做

fake2.random.seed(123)
fake2.name()
fake2.random.seed(123)
fake2.name()

Faker中的方法都是由一个个的provider来提供的,这个可以通过查看相应的方法来确认,如fake2.name就是这个<bound method Provider.name of <faker.providers.person.zh_CN.Provider object at 0x000002532DA2EC08>>来实现的。文章的最后我们自己来写一个provider

from faker.providers import BaseProvider

class MyProvider(BaseProvider):
    def hello(self):
        return "hello"

fake1.add_provider(MyProvider)
print(fake1.hello())

代码的执行结果就是hello。这个就是最简单的provider了。

参考资料

喜欢 (0)

您必须 登录 才能发表评论!