python中生成各种随机数据的Faker库
安装:pip install Faker
引用:import Faker
Faker.Faker.seed(int):设定随机种子,种子相同的生成器实例获取的结果完全相同
创建和初始化faker生成器:fake=Faker.Faker(locale='en_US')
locale指定生成的数据的语言,可以传入一个LCID字符串表示一个语言
也可以传入一个由LCID字符串组成的数组,生成器每次生成将会随机选择一个语言
常用的LCID字符串
zh-CN:简体中文
zh-TW:繁体中文
ja_JP:日本日语
en_US:美国英语
en-GB:英国英语
fr-FR:法国法语
de-DE:德国德语
ko_KR:韩国韩语
ro:俄语
th:泰语
fake.unique:唯一值,返回的值在实例的生存期内是唯一的
fake.unique.clear()允许再次返回以前生成的值
无性质的数据
数字
random_digit():返回随机数字
random_digit_not_null():返回随机非零数字
random_digit_or_empty():返回随机数字或空字符串
random_digit_not_null_or_empty():返回随机非零数字或空字符串
random_int(min=0, max=9999,step=1):返回随机int
pyint(min_value=0, max_value=9999, step=1):返回int值
random_number(digits=None):返回指定长度的数字,不指定则长度1-9随机
randomize_nb_elements(number=10,le=False,ge=False,min=None,max=None)
根据number按照指定规则返回一个数字
le表示是否向下浮动,返回的数字最大值为number,最小值为number的60%
ge表示是否向上浮动,返回的数字最小值为number,最大值为number的140%
min和max表示返回的数字最小值和最大值,如果和le、ge冲突会优先满足min和max
pyfloat(left_digits=None, right_digits=None, positive=False, min_value=None, max_value=None)
返回float值
left_digits整数位
right_digits小数位
positive表示是否全部为正数
numerify(text='###'):按text指定的格式输出随机数字字符串
'#'表示一个随机数字
'%'表示一个随机非零数字
'!'表示一个随机数字或空字符串
'@'表示一个随机的非零数字或空字符串
hexify(text='^^^^',upper=False):按text指定的格式输出16进制字符,upper表示是否大写
century(min_length=None,max_length=None):随机返回希腊数字字符串
布尔值
pybool():随机返回bool值
boolean(chance_of_getting_true=50):返回bool值,参数表示返回True的概率
null_boolean():返回None或bool值,三个值每个概率相等
字符串
random_lowercase_letter():返回小写字符
random_uppercase_letter():返回大写字符
random_letter():返回大小写字符
random_letters(length=16):返回length个大小写字符组成的数组
lexify(text='????',letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
按text指定的格式输出letters中随机字符,一个问号表示一个字符
bothify(text='## ??',letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
按指定格式输出指定的数字和字符组成的字符串
word(part_of_speech=None,ext_word_list=None)
返回一个单词,part_of_speech表示返回具体词义的单词,测试无论什么值都报错
ext_word_list如果不为None,那么会忽略part_of_speech参数
words(nb=3,part_of_speech=none,ext_word_list=None,unique=False)
返回包含nb个元素使用word()默认参数生成的单词列表
sentence(nb_words=6,variable_nb_words=True,ext_word_list=None)
返回一个字符串,该字符串由nb_words个单词组成
variable_nb_words表示单词数是否上下随机40%浮动
ext_word_list为一个list,指定组成句子的字符
sentences(nb=3,ext_word_list=None)
返回包含nb个元素使用sentence()默认参数生成的句子列表
paragraph(nb_sentences=3,variable_nb_sentences=True,ext_word_list=None)
返回一个段落字符串,一个段落由多个句子组成
paragraphs(nb=3,ext_word_list=None)
返回包含nb个元素使用paragraph()的默认参数生成的段落列表
关于姓名
first_name(min_length=None,max_length=None):获取不含姓的名字
first_name_as_list():返回由131个不含姓的名字组成的列表
first_name_female(min_length=None,max_length=None):获取不含姓的女性名字
first_name_female_as_list()
first_name_male(min_length=None,max_length=None):获取不含姓的男性名字
first_name_male_as_list()
last_name(min_length=None,max_length=None):获取姓
last_name_as_list()
name():获取姓名
name_female():女性化姓名
name_male():男性化姓名
profile():获取个人信息对象,对象包含属性
job:工作岗位
company:公司名称
ssn:身份证号码
residence:住宅地址
current_location:所在位置经纬度
blood_group:血型
website:网址
username:用户名
name:姓名
sex:性别
address:工作地址
mail:邮箱
birthdate:生日
号码相关
ssn():身份证号
bban():银行卡号,前4位为银行代码的大写字符
credit_card_number(card_type=None):银行卡卡号
卡类型默认None会随机选择卡类型
可用的卡类型有'amex', 'diners', 'discover', 'jcb', 'jcb15', 'jcb16', 'maestro', 'mastercard', 'visa', 'visa13', 'visa16', 'visa19'
ean(length=13,prefixes=()):条形码号码,prefixes为号码前缀
license_plate():汽车牌照号
country_calling_code(min_length=None,max_length=None):返回国际区号,如"+86"
phone_number():返回随机手机号码
phonenumber_prefix():随机手机号码号段,如"133"
关于地址
address():用空格隔开的随机地址和邮编字符串
building_number():中文环境下返回"[a-zA-Z]座"字符串
city():城市名称
city_name():不带后缀的城市名
city_suffix():城市的后缀,如"市/县/镇"
district():区名称
province():省名称
country(min_length=None,max_length=None):随机国家
postcode():邮编
street_address():返回不含国家和城市的地址
street_name():街道名称
street_suffix(min_length=None,max_length=None):街道的后缀,如"大道/街/路"
latitude():地理坐标(纬度)
longitude():地理坐标(经度)
时间和日期
am_pm():随机返回'AM'或'PM'字符串
date(format='%Y-%m-%d', end_datetime=None):返回1970-01-01至指定时间(默认至今)之间的随机日期字符串
end_datetime可以传入datetime模块的date、datetime、timedelta数据
也可传入简单字符串,如"2022-10-22","-30y"(减30年)
也可传入int格式的时间戳
date_between(start_datetime='-30y',end_datetime='today')返回的指定时间之间随机的datetime.date格式日期
date_of_birth(tzinfo=None,minimum_age=0,maximum_age=115):根据年龄区间返回一个随机的datetime.date格式出生日期
year():获取随机年份数字字符串
month():获取随机月份数字(有前导0)字符串
month_name():获取随机月名称字符串
day_of_month():随机获取日(有前导0)的数字字符串
day_of_week():随机获取周几的字符串
time(format="%H:%M:%S",end_datetime=None):获取随机时间字符串
timezone():获取随机时区字符串
unix_time(end_datetime=None,start_datetime=None):获取随机时间戳
工作相关
job(min_length=None,max_length=None):职业名称
company():公司全名
company_prefix():公司的名称,不带后缀
company_suffix(min_length=None,max_length=None):公司的后缀,如"信息有限公司/传媒有限公司"
网络相关
company_email():随机公司邮箱(域名随机)
free_email():随机邮箱,域名为主流邮箱服务商的域名
email(safe=True,domain='None'):返回domain指定的域名的随机邮箱
ipv4(network=False,address_class=None,private=False)
返回ipv4地址字符串
address_class表示类别,可用值'a','b','c'
private:表示是否私有
ipv4_private(network=False,address_class=None):返回私有IP
ipv4_public(network=False,address_class=None):返回公网IP
ipv6(networkFalse):返回ipv6地址字符串
mac_address():返回MAC地址字符串
port_number(is_system=False,is_user=False,is_dynamic=False)
返回一个端口号
is_system表示是否为系统常用端口号
is_user表示是否为用户常用软件使用的端口号
is_dynamic表示动态/专用/临时端口
domain_name(levels=1):生成域名,参数表示域名中点的个数
domain_word():域词(即,不包含后缀)
tld(min_length=None,max_length=None):返回域名后缀
uri():返回随机的网址
user_name():用于网络登录的用户名
password(length=10, special_chars=True,digits=True,upper_case=True,lower_case=True)
返回可用作密码的字符串
special_chars(特殊字符"!@#$%^&*()_+")、digits(数字)、upper_case(大写)、lower_case(小写)
如果为True,则保证至少出现相应类别中的一个字符
user_agent
android_platform_token():含安卓标识的字符串,如"Android 8.1.0"
ios_platform_token():含iOS标识的字符串,如"iPhone; CPU iPhone OS 10_3_4 like Mac OS X"
linux_platform_token():含linux标识的字符串,如"X11; Linux x86_64"
mac_platform_token():含MAC标识的字符串,如"Macintosh; U; Intel Mac OS X 10_12_6"
windows_platform_token():含windows标识的字符串,如"Windows NT 10.0"
chrome():Chrome浏览器用户代理字符串
firefox():Firefox浏览器用户代理字符串
internet_explorer():IE浏览器用户代理字符串
opera():Opera浏览器用户代理字符串
safari():Safari浏览器用户代理字符串
user_agent():随机返回浏览器用户代理字符串
文件相关
file_extension(category=None):根据category指定的类别返回随机后缀字符串
category可用值:'audio','image','office','text','video'
file_name(category=None,extension=None):获取含后缀的文件名
extension为指定文件后缀,如果设置了该值,会忽略category值
file_path(depth=1, category=None, extension=None,absolute=True)
返回一个包含路径和文件名的字符串
absolute表示是否返回绝对路径
mime_type(category=None):根据category指定的类别返回随机MIME类型字符串
category可用值:'application','audio','image','message','model','multipart','text','video'
csv(header=None,data_columns=('{{name}}','{{address}}'),num_rows=10,include_row_ids=False)
生成多行逗号分隔的值
header为一个元组或列表,指定标题
data_columns为每行的内容,使用对应函数名获取指定数据
include_row_ids表示是否在第一列添加ID列
加密摘要
md5(raw_output=False):获取MD5值,raw_output表示是否返回二进制
sha1(raw_output=False):获取sha1值,raw_output表示是否返回二进制
sha256(raw_output=False):获取sha256值
选择相关
random_element(elements=('a', 'b', 'c'),min_element_length=None,max_element_length=None)
从elements序列中随机取出一个
后两个参数表示筛选取出元素的长度
random_elements(elements=('a', 'b', 'c'), length=None,unique=False,use_weighting=None,min_element_length=None,max_element_length=None)
返回从elements序列中随机取出length个元素组成的列表
length不指定则默认不超过elements的元素总数的随机值
unique表示取出的值是否不重复
random_sample(elements=('a', 'b', 'c'),length=None)
返回从elements序列中随机取出length个元素组成的列表
random_choices(elements=('a', 'b', 'c'),length=None)
返回从elements序列中随机取出length个元素组成的列表
length不指定则默认不超过elements的元素总数的随机值
颜色相关
color(hue=None,luminosity=None,color_format='hex')
返回一个表示颜色的字符串
此方法首先创建在HSV颜色模型中表示的颜色,然后将其转换为所需的格式字符串
hue 为一个int时表示HSV中的H值
为两个int组成的元组或列表时H值将从该范围内随机选择
为字符串时H值将从字符串对应颜色的H范围内随机选择,可用的颜色字符串'monochrome', 'red', 'orange', 'yellow', 'green', 'blue', 'purple','pink'
luminosity控制HSV中S和V的表现,可选值'bright','dark','light','random'
color_format表示输出的颜色字符串格式,默认为16进制,可选值'hex','rgb','hsv','hsl'
hex_color():返回随机16进制颜色字符串
rgb_color():返回随机RGB颜色字符串
rgb_css_color():返回随机CSS中使用的RGB颜色字符串
safe_hex_color():返回随机16进制web安全色字符串
其他
language_code():随机的i18n语言代码(如en)
locale():随机的i18n语言环境代码(如en_US)