一、faker库简介
在编写程序过程中,我们常常需要用到很多数据来进行测试。
如果要是手动制造数据的话,肯定要花费大把精力,这不合理。
此时我们应该使用Faker这个Python库,用它来生成各种各样的伪数据。
二、faker库安装
pip install faker
三、faker库使用
1、四要素
1、姓名
2、身份证
3、手机号
4、银行卡
# 1、姓名
fk = Faker(locale="zh-CN")
name = fk.name()
print(name) # 陈洋
# 2、身份证
card = fk.ssn()
print(card)
# 3、手机号(停止发短信的功能)
phone = fk.phone_number()
print(phone)
# 4、银行卡
card_number = fk.credit_card_number()
print(card_number)
祁欣
130902199911290750
13547916327
374285180723723
2、个人信息
# 初始化
fk = Faker(locale="zh-CN")
# 1、带邮政编码的地址
addr = fk.address()
print(addr) # 辽宁省张家港县怀柔赵街d座 192553
# 2、 获取公司名称
compancy = fk.company()
print(compancy) # 彩虹网络有限公司
# 3、邮箱
email = fk.email()
print(email) # naluo@io.cn
# 4、获取职称
job = fk.job()
print(job) # 艺术/设计
# 5、获取城市
city = fk.city()
print(city) # 淮安市
# 6、获取国家
country = fk.country()
print(country) # 苏里南
# 7、获取省份
province = fk.province()
print(province) # 内蒙古自治区
#8、获取简单的人物信息
info = fk.simple_profile()
print(info)
{'username': 'taoming', 'name': '陈莹', 'sex': 'M', 'address': '澳门特别行政区兰州市西峰马鞍山路C座 988104', 'mail': 'chao75@yahoo.com', 'birthdate': datetime.date(1980, 1, 22)}
per = fk.profile()
print(per)
{'job': '物流经理', 'company': '海创网络有限公司', 'ssn': '430203195212241619', 'residence': '河南省芳市孝南高路t座 388651', 'current_location': (Decimal('-41.2411995'), Decimal('154.458583')), 'blood_group': 'O+', 'website': ['https://www.tb.cn/'], 'username': 'qiangsong', 'name': '周桂荣', 'sex': 'M', 'address': '北京市潜江市西峰天津路v座 486340', 'mail': 'na08@hotmail.com', 'birthdate': datetime.date(1995, 6, 15)}
3、文本类
# 1、生成英文的字符串
pystring = fk.pystr()
print(pystring) # TbXamiNaLAfSruNBRVqG
# 2、生成词语
word = fk.word()
print(word) # 设备
# 3、生成一篇文章
text = fk.text()
print(text)
客户有限无法销售.一下国内关于一次控制.手机网站部门市场进行详细.
法律有关登录介绍都是一个她的.
只有地方用户发表原因之后.只有虽然项目工程之间地区但是.
精华今年一个解决不要类型应该.用户信息电脑论坛决定中国其他联系.已经名称其中所以有些是否这是.不是状态会员游戏.
数据一般之后.不会软件需要一切主题这个积分.名称决定一个那个科技孩子.
显示是一有限那么提供生产.发布可能运行更新最后.
# 4、生成一个随机数
random_num = fk.random_int(min=1, max=999)
print(random_num) # 637
4、日期
# 1、获取年份
year = fk.year()
print(year) # 2004
#2、 获取月份
month = fk.month()
print(month) # 12
# 3、获取日期
date = fk.date()
print(date) # 2018-06-11
# 4、获取当前年份:年月日
now = fk.date_this_year()
print(now) # 2022-01-01
# 5、获取:年月日时分秒
this_time = fk.date_time()
print(this_time) # 1972-11-08 22:30:30
# 6、自定义年月日格式 年月日 时分秒
res1 = fk.date_time_between(start_date="-3y", end_date="-1y")
print(res1) # 2019-06-17 16:43:42
# 7、自定义时间范围,3年前到1年前之间的
res2 = fk.date_between(start_date="-3y", end_date="-1y")
print(res2) # 2019-08-01
# 8、获取未来时间 年月日
future1 = fk.future_date()
print(future1) # 2022-02-01
# 9、获取未来时间,年月日 时分秒
future2 = fk.future_datetime()
print(future2) # 2022-02-04 13:14:24
5、生成不重复的数据
# 生成的数据不重复, 用于批量处理数据
this_name = fk.name()
name_list = [fk.unique.name() for i in range(10)]
print(name_list)
['霍淑珍', '原英', '程建平', '覃红', '孙杰', '封宁', '赵桂英', '马秀荣', '谭柳', '邢玉华']
6、实现数据共享
数据共享:通过seed保持数据一致
from faker import Faker
class Test:
def __init__(self):
self.fk = Faker(locale="zh-CN")
def test01(self):
Faker.seed(1111)
print(self.fk.name())
def test02(self):
Faker.seed(1111)
print(self.fk.name())
if __name__ == '__main__':
cl = Test()
cl.test01()
cl.test02()
张建
张建