faker模块基本用法

引言:

  自动化脚本编写时,一般会遇到需要构造数据的情况,比如注册时的基本信息;每次执行脚本都要重新构造数据显然是很费时费力的事情,所以可以用到faker模块来构造;方便快捷,神器也;

一、安装

  pip install -U faker

 

二、基本用法

  1.创建10次不同的用户名:

 

from faker import Factory

def create_names():
    fake = Factory.create()
    for i in range(10):
        print fake.name()

if __name__ == '__main__':
    create_names()

 

  随机产生10个符合命名规则的假数据,因为名字规则是按外国人名涉及的,所以可能会有很多概率出现姓名之外的简称等

 

>>> 
============== RESTART: C:\Users\hao\Desktop\faker_test.py ==============
David Martin
Mrs. Terese Walter MD
Jess Mayert
Ms. Katerina Fisher PhD
Mrs. Senora Purdy PhD
Gretchen Tromp
Winnie Goodwin
Yuridia McGlynn MD
Melissa Kent 
April Washington 
>>>

 

  2.生成只有姓和名的数据

 

from faker import Factory

def create_names():
    fake = Factory.create()
    for i in range(10):
        print '%s %s' % (fake.last_name(), fake.first_name())

if __name__ == '__main__':
    create_names()

 

  生成的数据只包含了last_name和first_name

 

>>> 
============== RESTART: C:\Users\lizihao\Desktop\faker_test.py ==============
Gillespie Travis
Gomez Brandon
Wiley Jim
Anderson Amber
Walker Desiree
Miranda Elizabeth
Johnson Samantha
Tanner David
Keller Allison
Sanchez Kaylee
>>> 

 

  3.还有一些常用的数据,比如用户名、密码、电话、住址、城市等等

 

from faker import Factory

def create_fake_stuff():
    stuff = ['user_name', 'password', 'email', 'phone_number', 'address', 'city', 'state', 'paragraph']
    fake = Factory.create()
    for item in stuff:
        print '%s = %s' % (item, getattr(fake, item)())

if __name__ == '__main__':
    create_fake_stuff()

 

  生成的对应的数据:

 

>>> 
============== RESTART: C:\Users\lizihao\Desktop\faker_test.py ==============
user_name = kevin04
password = PN5xUyd5n$
email = rodriguezwilliam@hotmail.com
phone_number = 280-227-9367
address = 3321 Brett Glens
Port Jeffrey, MD 45556
city = Meltonbury
state = Arizona
paragraph = Iure odit voluptatibus quidem iste. Omnis ab ab voluptas consequuntur earum repellendus corrupti.
>>> 

 

三、其余的用法

  如果想知道faker都能生成哪些规则的数据,可以创建fake对象,然后dir(fake);

>>> from faker import Factory
>>> fake = Factory.create()
>>> dir(fake)
>>> 

  得到的结果是:

  

  需要什么样的数据就在里面找吧,一般都能满足你的需要;

转至:https://www.cnblogs.com/zanjiahaoge666/p/7246738.html

faker使用参考官网:https://github.com/joke2k/faker/tree/master/faker

 

 

 

地址信息类:

  • fake.address():完整地址,比如海南省成市丰都深圳路p座 425541
  • fake.street_address():街道+地址,比如兴城路A座
  • fake.street_name():街道名,比如宜都街
  • fake.city_name():城市名,比如兰州
  • fake.city():城市,比如兰州市
  • fake.province():省份名,比如陕西省
  • fake.postcode():邮编
  • fake.country():国家

 

 

公司信息类:

  • fake.company():公司名,比如惠派国际公司信息有限公司
  • fake.company_suffix():公司名后缀(公司性质),比如网络有限公司
  • fake.company_prefix():公司名前缀,比如鑫博腾飞
 

日期类:

  • fake.date(pattern="%Y-%m-%d", end_datetime=None)
  • fake.year():随机年份
  • fake.day_of_week():随机星期数
  • fake.time(pattern="%H:%M:%S", end_datetime=None):随机时间
 

 网络类:

  • fake.company_email():企业邮箱
  • fake.email():邮箱
 

个人信息类:

  • fake.name():姓名

  • fake.user_name(*args, **kwargs):用户名,只是随机的英文姓名组合,一般是6位
  • fake.phone_number():电话号码
  • fake.simple_profile(sex=None):简略个人信息,包括用户名,姓名,性别,地址,邮箱,出生日期。比如{'username': 'chao', 'name': '胡秀兰', 'sex': 'M', 'address': '宁夏回族自治区玉市沙湾宁德路t座 873713', 'mail': 'uxiao@yahoo.com', 'birthdate': '1998-06-12'}
  • fake.profile(fields=None, sex=None):详略个人信息,比简略个人信息多出公司名、血型、工作、位置、域名等等信息。
  • fake.password():密码
    • 参数选项:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母。
    • 默认情况:length=10, special_chars=True, digits=True, upper_case=True, lower_case=True
  • fake.job():工作

 

文章类:

  • fake.word(ext_word_list=None):随机词语
    • ext_word_list可以是一个列表,那么词语会从列表中取
  • fake.words(nb=3, ext_word_list=None):随机多个词语
    • nb是数量,对于words来说是返回多少个词语
  • fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None):随机短语(会包括短语结束标志点号)
  • fake.paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None):随机段落
  • fake.paragraphs(nb=3, ext_word_list=None):多个随机段落

 

数据类型类:

  • fake.pystr(min_chars=None, max_chars=20):自定义长度的随机字符串
  • fake.pyint():随机整数
https://faker.readthedocs.io/en/master/index.html


import pymysql
from faker import Faker

conn=pymysql.connect(host="localhost",port=3306,user="root",password="123456",db="it",charset="utf8")

cursor=conn.cursor()
#这里给出表结构,如果使用已存在的表,可以不创建表。
sql="""
create table user(
id int PRIMARY KEY auto_increment,
username VARCHAR(20),
password VARCHAR(20),
address VARCHAR(35) 
)
"""
cursor.execute(sql)
fake=Faker("zh-CN")
for i in range(20):
    sql="""insert into user(username,password,address) 
    values('%s','%s','%s')"""\
        %(fake.user_name(),fake.password(special_chars=False),fake.address())
    cursor.execute(sql)

conn.commit()
cursor.close()
conn.close()
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值