zoukankan      html  css  js  c++  java
  • Python Faker的使用(1):基础使用方法与函数速查,生成随机数据

        在软件需求、开发、测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据。

        在手动制造数据的过程中,可能需要花费大量精力和工作量,现在好了,有一个Python包能够协助你完成这方面的工作。

    1.什么是Faker

        Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。

        项目地址:https://github.com/joke2k/faker

    2.安装Faker

        方法一:

            pip install faker

        方法二:

            通过上方提供的github地址,来下载编译安装。

    3.Faker的使用

        引用包:

            from faker import Faker

        初始化:

            f=Faker(locale='zh_CN')

        关于初始化参数locale:为生成数据的文化选项,默认为en_US,只有使用了相关文化,才能生成相对应的随机信息(比如:名字,地址,邮编,城市,省份等)

    可选择的文化信息:

    ar_EG - Arabic (Egypt)

    ar_PS - Arabic (Palestine)

    ar_SA - Arabic (Saudi Arabia)

    bg_BG - Bulgarian

    cs_CZ - Czech

    de_DE - German

    dk_DK - Danish

    el_GR - Greek

    en_AU - English (Australia)

    en_CA - English (Canada)

    en_GB - English (Great Britain)

    en_US - English (United States)

    es_ES - Spanish (Spain)

    es_MX - Spanish (Mexico)

    et_EE - Estonian

    fa_IR - Persian (Iran)

    fi_FI - Finnish

    fr_FR - French

    hi_IN - Hindi

    hr_HR - Croatian

    hu_HU - Hungarian

    it_IT - Italian

    ja_JP - Japanese

    ko_KR - Korean

    lt_LT - Lithuanian

    lv_LV - Latvian

    ne_NP - Nepali

    nl_NL - Dutch (Netherlands)

    no_NO - Norwegian

    pl_PL - Polish

    pt_BR - Portuguese (Brazil)

    pt_PT - Portuguese (Portugal)

    ru_RU - Russian

    sl_SI - Slovene

    sv_SE - Swedish

    tr_TR - Turkish

    uk_UA - Ukrainian

    zh_CN - Chinese (China)

    zh_TW - Chinese (Taiwan)

    然后即可使用系统提供的方法:

     

     
    一段简单的测试代码

    f.name()  #生成姓名

    f.address() #生成地址

    4.常用方法一览

    city_suffix():市,县

    country():国家

    country_code():国家编码

    district():区

    geo_coordinate():地理坐标

    latitude():地理坐标(纬度)

    longitude():地理坐标(经度)

    lexify():替换所有问号(“?”)带有随机字母的事件。

    numerify():三位随机数字

    postcode():邮编

    province():省份

    street_address():街道地址

    street_name():街道名

    street_suffix():街、路

    random_digit():0~9随机数

    random_digit_not_null():1~9的随机数

    random_element():随机字母

    random_int():随机数字,默认0~9999,可以通过设置min,max来设置

    random_letter():随机字母

    random_number():随机数字,参数digits设置生成的数字位数

    color_name():随机颜色名

    hex_color():随机HEX颜色

    rgb_color():随机RGB颜色

    safe_color_name():随机安全色名

    safe_hex_color():随机安全HEX颜色

    bs():随机公司服务名

    company():随机公司名(长)

    company_prefix():随机公司名(短)

    company_suffix():公司性质

    credit_card_expire():随机信用卡到期日

    credit_card_full():生成完整信用卡信息

    credit_card_number():信用卡号

    credit_card_provider():信用卡类型

    credit_card_security_code():信用卡安全码

    currency_code():货币编码

    am_pm():AM/PM

    century():随机世纪

    date():随机日期

    date_between():随机生成指定范围内日期,参数:start_date,end_date取值:具体日期或者today,-30d,-30y类似

    date_between_dates():随机生成指定范围内日期,用法同上

    date_object():随机生产从1970-1-1到指定日期的随机日期。

    date_this_month():

    date_this_year():

    date_time():随机生成指定时间(1970年1月1日至今)

    date_time_ad():生成公元1年到现在的随机时间

    date_time_between():用法同dates

    future_date():未来日期

    future_datetime():未来时间

    month():随机月份

    month_name():随机月份(英文)

    past_date():随机生成已经过去的日期

    past_datetime():随机生成已经过去的时间

    time():随机24小时时间

    timedelta():随机获取时间差

    time_object():随机24小时时间,time对象

    time_series():随机TimeSeries对象

    timezone():随机时区

    unix_time():随机Unix时间

    year():随机年份

    file_extension():随机文件扩展名

    file_name():随机文件名(包含扩展名,不包含路径)

    file_path():随机文件路径(包含文件名,扩展名)

    mime_type():随机mime Type

    ascii_company_email():随机ASCII公司邮箱名

    ascii_email():随机ASCII邮箱

    ascii_free_email():

    ascii_safe_email():

    company_email():

    domain_name():生成域名

    domain_word():域词(即,不包含后缀)

    email():

    free_email():

    free_email_domain():

    f.safe_email():安全邮箱

    f.image_url():随机URL地址

    ipv4():随机IP4地址

    ipv6():随机IP6地址

    mac_address():随机MAC地址

    tld():网址域名后缀(.com,.net.cn,等等,不包括.)

    uri():随机URI地址

    uri_extension():网址文件后缀

    uri_page():网址文件(不包含后缀)

    uri_path():网址文件路径(不包含文件名)

    url():随机URL地址

    user_name():随机用户名

    isbn10():随机ISBN(10位)

    isbn13():随机ISBN(13位)

    job():随机职位

    paragraph():随机生成一个段落

    paragraphs():随机生成多个段落,通过参数nb来控制段落数,返回数组

    sentence():随机生成一句话

    sentences():随机生成多句话,与段落类似

    text():随机生成一篇文章(不要幻想着人工智能了,至今没完全看懂一句话是什么意思)

    word():随机生成词语

    words():随机生成多个词语,用法与段落,句子,类似

    binary():随机生成二进制编码

    boolean():True/False

    language_code():随机生成两位语言编码

    locale():随机生成语言/国际 信息

    md5():随机生成MD5

    null_boolean():NULL/True/False

    password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母

    sha1():随机SHA1

    sha256():随机SHA256

    uuid4():随机UUID

    first_name():

    first_name_female():女性名

    first_name_male():男性名

    first_romanized_name():罗马名

    last_name():

    last_name_female():女姓

    last_name_male():男姓

    last_romanized_name():

    name():随机生成全名

    name_female():男性全名

    name_male():女性全名

    romanized_name():罗马名

    msisdn():移动台国际用户识别码,即移动用户的ISDN号码

    phone_number():随机生成手机号

    phonenumber_prefix():随机生成手机号段

    profile():随机生成档案信息

    simple_profile():随机生成简单档案信息

     
     

    随机生成指定类型数据:

    pybool():

    pydecimal():

    pydict():

    pyfloat():left_digits=5 #生成的整数位数,

                      right_digits=2 #生成的小数位数,

                      positive=True #是否只有正数

    pyint():

    pyiterable()

    pylist()

    pyset()

    pystr()

    pystruct()

    pytuple()

    ssn():生成身份证号

    chrome():随机生成Chrome的浏览器user_agent信息

    firefox():随机生成FireFox的浏览器user_agent信息

    internet_explorer():随机生成IE的浏览器user_agent信息

    opera():随机生成Opera的浏览器user_agent信息

    safari():随机生成Safari的浏览器user_agent信息

    linux_platform_token():随机Linux信息

    user_agent():随机user_agent信息

     

    5.使用中遇到的问题

       元旦前发布的这篇文章,由于工作需要,元旦期间创建伪数据的过程中,发现一个很有意思的问题。不同的文化类之间,方法是偶然有区别的。

       比如,在中文(zh_CN)中的方法,district()#获取区   province()#获取省的方法,在有些包里是没有的,这需要根据所使用文化类的国家特制来。

     
    使用日文包没有province方法

      比如,中国的一级行政单位,是省,直辖市,自治区;而日本的一级行政单位,是都、道、府、县。所以,日文包(ja_JP)中,就没有相应的province(),district(),取而代之的是prefecture(),town();在美国,一级行政单位又是洲,所以,在美国英语包(en_US)中,取而代之的是state();

       总之,在使用不同Fake类之前,最好对所生成文化的国家信息做初步的了解,建议先浏览其对应的类文件的成员。

    小礼物



    作者:三胖道长
    链接:https://www.jianshu.com/p/6bd6869631d9
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    yii 引入文件
    CodeForces 621C Wet Shark and Flowers
    面试题题解
    POJ 2251 Dungeon Master
    HDU 5935 Car(模拟)
    HDU 5938 Four Operations(暴力枚举)
    CodeForces 722C Destroying Array(并查集)
    HDU 5547 Sudoku(dfs)
    HDU 5583 Kingdom of Black and White(模拟)
    HDU 5512 Pagodas(等差数列)
  • 原文地址:https://www.cnblogs.com/wangkun122/p/10297521.html
Copyright © 2011-2022 走看看