Python使用FaKer模拟数据!!!

hello,小伙伴们,大家好,今天给大家介绍的开源项目是: Faker,它解决的问题是python模拟(随机)数据!不知道大家在工作中没有用到过假数据,特别前后端开发的人员,应该经常用到,前端人员页面展示,效果展示。后端人员数据库数据模拟。今天给大家介绍的这个项目完美的解决了这个方案,可以模拟多种语言的数据,中文,英文,日语,韩语等等。有兴趣的小伙伴可以下载尝试一下。

_|_|_|_|          _|
_|        _|_|_|  _|  _|      _|_|    _|  _|_|
_|_|_|  _|    _|  _|_|      _|_|_|_|  _|_|
_|      _|    _|  _|  _|    _|        _|
_|        _|_|_|  _|    _|    _|_|_|  _|

安装

pip install Faker

基本用法

使用faker.Faker()初始化,可通过访问你想要的数据类型来命名的属性生成你要的数据。

from faker import Faker
fake = Faker()

fake.name()
# ‘Lucy Cechtelar‘

fake.address()
# ‘426 Jordy Lodge
#  Cartwrightshire, SC 88120-6700‘

fake.text()
# ‘Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi
#  beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt
#  amet quidem. Iusto deleniti cum autem ad quia aperiam.
#  A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui
#  quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur
#  voluptatem sit aliquam. Dolores voluptatum est.
#  Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est.
#  Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati.
#  Et sint et. Ut ducimus quod nemo ab voluptatum.‘

每次对方法的调用都会fake.name()产生不同的(随机)结果。这是因为造假者将faker.Generator.method_name()呼叫转发给faker.Generator.format(method_name)。

from faker import Faker
fake = Faker("zh-CN")

fake.name()
# ‘张柳‘

fake.address()
# ‘黑龙江省辽阳县江北李路C座 461467‘

fake.text()
# ‘继续浏览音乐行业国内什么.任何同时专业但是人民而且无法.认为大家的是更新.
数据设备日本更多.生活发表一般最大一下.状态得到游戏今天喜欢.
专业无法工作这么文化如此感觉教育.工程全部详细注意.现在增加女人一些日本觉得不过.
感觉原因全部感觉表示.质量所以管理但是因此.图片都是一种注册表示主要汽车影响.
质量喜欢有关希望更多.已经那个更多决定运行.
系列名称完全研究女人没有企业.‘

可以自定义不同的语言,也可以输出多种语言,这里我们就展示中英文,有兴趣的可以去查看官方文档

生成IP地址

from faker import Faker
from faker.providers import internet

fake = Faker()
fake.add_provider(internet)

print(fake.ipv4_private())
# ‘192.168.91.234‘

随机生成IP地址,每次产生不同的(随机)结果。

命令行用法

faker [-h] [--version] [-o output]
      [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}]
      [-r REPEAT] [-s SEP]
      [-i {package.containing.custom_provider otherpkg.containing.custom_provider}]
      [fake] [fake argument [fake argument ...]]

Where:

  • faker: is the script when installed in your environment, in development you could use python -m faker instead
  • -h, --help: 显示帮助文档
  • --version: 显示版本信息
  • -o FILENAME: 将输出重定向到指定的文件名中。
  • -l {bg_BG,cs_CZ,...,zh_CN,zh_TW}: 允许自定义语言,一种或多种语言。
  • -r REPEAT: 指定输出的数量
  • -s SEP: 每次生成输出后,会生成指定的字符
  • -i {my.custom_provider other.custom_provider} list of additional custom providers to use. Note that is the import path of the package containing your Provider class, not the custom Provider class itself.
  • fake: 用于生成输出(例如名称、地址或文本)的伪名称
  • [fake argument ...]: 传递给fake的可选参数
$ faker address
968 Bahringer Garden Apt. 722
Kristinaland, NJ 09890

$ faker -l de_DE address
Samira-Niemeier-Allee 56
94812 Biedenkopf

$ faker profile ssn,birthdate
{‘ssn‘: u‘628-10-1085‘, ‘birthdate‘: ‘2008-03-29‘}

$ faker -r=3 -s=";" name
Willam Kertzmann;
Josiah Maggio;
Gayla Schmitt;

自定义数据

如果不想使用默认数据,可以提供自己的单词集。

fake = Faker()

my_word_list = [
‘danish‘,‘cheesecake‘,‘sugar‘,
‘Lollipop‘,‘wafer‘,‘Gummies‘,
‘sesame‘,‘Jelly‘,‘beans‘,
‘pie‘,‘bar‘,‘Ice‘,‘oat‘ ]

fake.sentence()
# ‘Expedita at beatae voluptatibus nulla omnis.‘

fake.sentence(ext_word_list=my_word_list)
# ‘Oat beans oat Lollipop bar cheesecake.‘

常用例子

from faker import Faker
from faker.providers import internet

fake = Faker("zh-CN")

# 产生随机手机号
print(fake.phone_number())
# 产生随机姓名
print(fake.name())
# 产生随机地址
print(fake.address())
# 随机产生国家名
print(fake.country())
# 随机产生国家代码
print(fake.country_code())
# 随机产生城市名
print(fake.city_name())
# 随机产生城市
print(fake.city())
# 随机产生省份
print(fake.province())
# 产生随机email
print(fake.email())
# 产生随机IPV4地址
print(fake.ipv4())
# 产生长度在最大值与最小值之间的随机字符串
print(fake.pystr(min_chars=0, max_chars=8))

# 随机产生车牌号
print(fake.license_plate())

# 随机产生颜色
print(fake.rgb_color())  # rgb
print(fake.safe_hex_color())  # 16进制
print(fake.color_name())  # 颜色名字
print(fake.hex_color()) # 16进制

# 随机产生公司名
print(fake.company())

# 随机产生工作岗位
print(fake.job())
# 随机生成密码
print(fake.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True))
# 随机生成uuid
print(fake.uuid4())
# 随机生成sha1
print(fake.sha1(raw_output=False))
# 随机生成md5
print(fake.md5(raw_output=False))

# 随机生成女性名字
print(fake.name_female())
# 男性名字
print(fake.name_male())
# 随机生成名字
print(fake.name())

# 生成基本信息
print(fake.profile(fields=None, sex=None))
print(fake.simple_profile(sex=None))

# 随机生成浏览器头user_agent
print(fake.user_agent())

# 随机产生时间 月份
print(fake.month_name())
# ‘May‘
print(fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None))
# 2005-10-08 08:32:02
print(fake.time_object(end_datetime=None))
# 06:45:11
print(fake.date_time_between(start_date="-10y", end_date="now", tzinfo=None))
# 2012-08-25 03:07:38
print(fake.future_date(end_date="+30d", tzinfo=None))
# 2020-04-25
print(fake.date_time(tzinfo=None, end_datetime=None))
# 2002-09-01 18:27:45
print(fake.date(pattern="%Y-%m-%d", end_datetime=None))
# ‘1998-08-02‘
print(fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None))
# 2020-04-03 16:03:21
print(fake.timezone())
# ‘Africa/Addis_Ababa‘
print(fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None))
# 2020-01-09 01:15:08
print(fake.month())
# ‘04‘
print(fake.day_of_week())
# ‘Sunday‘
print(fake.iso8601(tzinfo=None, end_datetime=None))
# ‘1988-02-28T09:22:29‘
print(fake.date_object(end_datetime=None))
# 2017-06-26
print(fake.date_this_decade(before_today=True, after_today=False))
# 2020-03-30
fake.date_this_century(before_today=True, after_today=False)
# datetime.date(2000, 6, 1)
fake.date_this_month(before_today=True, after_today=False)
# datetime.date(2018, 6, 13)
fake.am_pm()
# ‘AM‘
fake.past_datetime(start_date="-30d", tzinfo=None)
# datetime.datetime(2018, 6, 25, 7, 41, 34)
fake.date_this_year(before_today=True, after_today=False)
# datetime.date(2018, 2, 24)
fake.date_time_between_dates(datetime_start=None, datetime_end=None, tzinfo=None)
# datetime.datetime(2018, 6, 26, 14, 40, 5)
fake.date_time_ad(tzinfo=None, end_datetime=None)
# datetime.datetime(673, 1, 28, 18, 17, 55)
fake.date_between_dates(date_start=None, date_end=None)
# datetime.date(2018, 6, 26)
fake.future_datetime(end_date="+30d", tzinfo=None)
# datetime.datetime(2018, 7, 4, 10, 53, 6)
fake.century()
# ‘IX‘
fake.past_date(start_date="-30d", tzinfo=None)
# datetime.date(2018, 5, 30)
fake.time(pattern="%H:%M:%S", end_datetime=None)
# ‘01:32:14‘
fake.day_of_month()
# ‘19‘
fake.unix_time(end_datetime=None, start_datetime=None)

fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2018, 5, 24, 11, 25, 25)
fake.date_between(start_date="-30y", end_date="today")
# datetime.date(2003, 1, 11)
fake.year()
# ‘1993‘
fake.time_series(start_date="-30d", end_date="now", precision=None, distrib=None, tzinfo=None)
# <generator object time_series at 0x7f44e702a620>

# 随机产生文件
fake.file_extension(category=None)
# ‘xls‘
print(fake.file_name(category=None, extension=None))
# 那么.mov
fake.file_path(depth=1, category=None, extension=None)
# ‘/教育/客户.js‘
fake.unix_device(prefix=None)
# ‘/dev/sdf‘
print(fake.unix_partition(prefix=None))
# ‘/dev/vdv4‘
print(fake.mime_type(category=None))
# ‘message/imdn+xml‘

开源地址: https://github.com/joke2k/fakerv

项目文档:https://faker.readthedocs.io/en/master/

今天的推荐不知道大家喜欢吗?如果你们喜欢话,请在文章底部留言或点赞,以表示对我的支持,你们的留言,点赞,转发关注是我持续更新的动力哦!

关注公众号回复:"1024",免费领取一大波学习资源,先到先得哦!

原文地址:https://www.cnblogs.com/zhijieju/p/12702235.html

时间: 2024-10-25 01:53:23

Python使用FaKer模拟数据!!!的相关文章

Python模拟数据工具哪些比较好用

今天给大家推荐两款基本的Python模拟数据工具:mock和pytest monkeypatch. 为什么要模拟数据? 我们的应用中有一些部分需要依赖外部的库或对象.为了隔离开这部分,我们需要代替这些外部依赖,因而就用到了模拟数据.我们模拟外部的API来产生特定的行为,比如说返回符合之前定义的恰当的返回值. 模拟函数 我们有一个function.py的模块: 然后我们来看下如何将其与Mock库结合使用的: 这里发生了什么?1-4行是为了兼容python 2和3来引入的代码,在python 3中m

MySQL实验准备(二)--Python模拟数据(MySQL数据库)

Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看<MySQL实验准备(一)--环境准备>文档 实验脚本 通过对一个简单表的脚本插入和查询模拟,后面能 举一反三,完成多张表的多表插入,多线程的多表插入,多线程查询,和多线程的join查询. 数据库的表结构 mysql> show create table zdemo.student; +----

python get post模拟请求

1.使用get方式时,url类似如下格式: [html] view plaincopy index.jsp?id=100&op=bind GET报问头如下: [html] view plaincopy GET /sn/index.php?sn=123&n=asa HTTP/1.1 Accept: */* Accept-Language: zh-cn host: localhost Content-Type: application/x-www-form-urlencoded Content

Python实现网站模拟登陆

一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方法,使用 Firefox 抓包分析插件分析网络数据包等知识. 模拟登录可以帮助用户自动化完成很多操作,在不同场合下有不同的用处,无论是自动化一些日常的繁琐操作还是用于爬虫都是一项很实用的技能.本课程通过 Firefox 和 Python 来实现,环境要求如下: Python 库:urllib, ur

测试开发Python培训:模拟登录新浪微博-技术篇

测试开发Python培训:模拟登录新浪微博-技术篇 一般一个初学者项目的起点就是登陆功能的自动化,而面临的项目不同实现的技术难度是不一样的,poptest在做测试开发培训中更加关注技术难点,掌握技术实现思路,提高动手能力.这里通过大家都能接触到的系统新浪微博,作为案例. 模拟登录功能比较简单,很多人在学习自动化的时候都会以登陆来作为自己的第一个学习案例,有点像开发语言中第一段代码都是helloworld!一样.登陆简单的模拟登录,直接发post请求就OK,很容易实现. 这里用新浪微博,就是技术实

在Python中实现交互式数据可视化

最近,我一直在看美国德克萨斯州奥斯汀举办的SciPy 2015会议上的一段视频——“用Blaze和Bokeh创建Python数据应用程序”,并且情不自禁地反复思考这两个库赋予世界各地使用Python的数据科学家们的强大能力.在本文中,我将带你体验使用Bokeh实现数据可视化的各种可能途径,以及Bokeh为什么是每位数据科学家的必备“神器”. ◆ ◆ ◆ 什么是Bokeh? Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库.这是Bokeh与其它可视化库最核心的区别.正如下

Python 操作文件模拟SQL语句功能

Python操作文件模拟SQL语句功能 一.需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from staff_table where dept = "IT" 3. select * from

Python爬虫之模拟登录微信wechat

不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息,甚至可以根据需要来对它们进行有效的查看和管理.是的,没错,这完全可以.本篇博主将会给大家分享一下如何模拟登录网页版的微信,并展示模拟登录后获取的好友列表信息. 微信模拟登录的过程比较复杂,当然不管怎么样方法都是万变不离其宗,我们还是使用fiddler抓包工具来模拟登录的过程.好了,下面让我们一步一

使用Python实现子区域数据分类统计

前言 将近两年前,我写过一篇同名文章(见使用Python实现子区域数据分类统计). 当时是为了统计县域内的植被覆盖量,折腾了一段时间,解决了这个问题.最近,又碰到了一个类似的需求,也需要统计某个小范围内的数据.简单来说,这个需求是将两个 shp 文件的任意两个对象做相交判断,最后形成一个新的空间对象集合,最后对此集合进行简单统计分析即可. 解决方案 明白了这一点之后,再看之前的代码,就发现当时用了很笨的方法.写了两个循环,先是取出大范围的 shp 中的每一个对象,再读取小范围 shp 的每一个对