Python最假的庫:Faker
來自專欄 萌新的學習日記
原文在這裡哦 ~~
先申明下,這裡說的Faker和LOL的大魔王沒有任何關係,只是恰好重名而已。
因為找不到圖,借用下Faker。
故事由來
最近做一個項目時需要隨機生成人的名字,百度之後,我是這樣寫的
def random_first_name(): """百家姓中選擇一個""" name = [趙, 錢, 孫, 李, 周, 吳, 鄭, 王, 馮, 陳, 褚, 衛, 蔣, 沈, 韓, 楊, 朱, 秦, 尤, 許, 何, 呂, 施, 張, 孔, 曹, 嚴, 華, 金, 魏, 陶, 姜, 戚, 謝, 鄒, 喻, 柏, 水, 竇, 章, 雲, 蘇, 潘, 葛, 奚, 范, 彭, 郎, 魯, 韋, 昌, 馬, 苗, 鳳, 花, 方, 俞, 任, 袁, 柳] return random.choice(name)def random_last_name(): """生成隨機漢語""" head = random.randint(0xb0, 0xf7) body = random.randint(0xa1, 0xf9) # 在head區號為55的那一塊最後5個漢字是亂碼,為了方便縮減下範圍 val = f{head:x}{body:x} str_ = bytes.fromhex(val).decode(gb2312) return str_name = random_first_name() + random_last_name()
前輩在review的時候說怎麼這麼複雜,Python中有一個專門生成各類假數據的庫:Faker,你去了解下。
Faker
項目地址:faker
安裝:pip install Faker
中文生成假數據:Language zh_CN
那麼Faker能生成那些假數據了?
from faker import Fakerfake = Faker(locale=zh_CN)# 初始化
地址
fake.street_name()# 廣州街fake.city_suffix()# 縣fake.street_address()# 香港路B座fake.longitude()# -98.702031fake.district()# 璧山
汽車
fake.license_plate()# HZL 767
銀行
fake.bban()# KLUX5928618542924fake.bank_country()# GBfake.iban()# GB04BPNH0448315286040
條形碼
fake.ean(length=13)# 0994331656275fake.ean8()# 51309350fake.ean13()# 8336323543385
公司
fake.company_prefix()# 鴻睿思博fake.bs()# embrace strategic schemasfake.company_suffix()# 科技有限公司fake.company()# 昂歌信息網路有限公司
信用卡
fake.credit_card_security_code(card_type=None)# 360fake.credit_card_full(card_type=None)# Diners Club / Carte Blanche
林 莘
30311852484679 10/19
CVC: 388
fake.credit_card_number(card_type=None)# 30240280288941fake.credit_card_expire(start="now", end="+10y", date_format="%m/%y")# 11/26fake.credit_card_provider(card_type=None)# Maestro
互聯網
fake.domain_word(*args, **kwargs)# jinfake.company_email(*args, **kwargs)# zoulei@hou.comfake.free_email(*args, **kwargs)# vxu@yahoo.comfake.ipv4_private(network=False, address_class=None)# 10.202.214.57fake.ascii_safe_email(*args, **kwargs)# baiyan@example.netfake.email(*args, **kwargs)# minggao@gmail.comfake.image_url(width=None, height=None)# https://www.lorempixel.com/817/102fake.uri_page()# categoryfake.ipv4_network_class()# c
姓名
fake.first_name_female()# 秀華fake.name_male()# 郟傑fake.suffix_female()# fake.first_name()# 東fake.prefix_female()# fake.last_name_male()# 扶fake.last_name()# 榮fake.name_female()# 曹紅fake.suffix_male()# fake.last_name_female()# 辛fake.last_romanized_name()# Zhangfake.first_romanized_name()# Minfake.romanized_name()# Xiuying Qiaofake.name()# 鍾想
電話
fake.phone_number()# 18874465626fake.msisdn()# 8086764507444fake.phonenumber_prefix()# 155
user_agent
這個大家應該很熟悉,常用的就是 fake-useragent
這個庫
fake.mac_platform_token()# Macintosh; Intel Mac OS X 10_12_1fake.firefox()# (Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_9_4; rv:1.9.4.20) # Gecko/2012-05-03 04:16:34 Firefox/3.6.10)fake.windows_platform_token()# Windows 95fake.safari()# (Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1 like Mac OS X; sat-IN) # AppleWebKit/533.2.4 (KHTML, like Gecko) Version/3.0.5 Mobile/8B113 # Safari/6533.2.4)fake.chrome(version_from=13, version_to=63, build_from=800, build_to=899)# (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5331 (KHTML, like Gecko) # Chrome/52.0.838.0 Safari/5331)fake.opera()# Opera/8.83.(X11; Linux i686; ce-RU) Presto/2.9.169 Version/10.00fake.mac_processor()# Intelfake.user_agent()# (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_9 rv:3.0; pa-IN) # AppleWebKit/532.47.6 (KHTML, like Gecko) Version/4.0.1 Safari/532.47.6)fake.linux_platform_token()# X11; Linux x86_64fake.linux_processor()# i686fake.internet_explorer()# Mozilla/5.0 (compatible; MSIE 5.0; Windows NT 5.01; Trident/3.1)
這裡舉例的都是中文的,當然也有其他語言的,小夥伴可以去官網看看。
最近在和小夥伴刷題,歡迎加入 Leetcode Solutions By All Language
https://mp.weixin.qq.com/s?__biz=MzIwNjUxMTQyMA==&mid=2247484150&idx=1&sn=66a2480570bfe9543f2832d62e13c4b4&chksm=9721cea5a05647b3e5fc1d2f9020fa319d5855c2e7f5bd5da7615cefaf9d49d5250acc3992ec#rd看了下源碼,也是隨機取得
class Provider(PersonProvider): formats = ["{{last_name}}{{first_name}}", ] first_names = [ "偉", "芳", "娜", "敏", "靜", "秀英", "麗", "強", "磊", "洋", "艷", "勇", "軍", "傑", "娟", "濤", "超", "明", "霞", "秀蘭", "剛", "平", "燕", "輝", "玲", "桂英", "丹", "萍", "鵬", "華", "紅", "玉蘭", "飛", "桂蘭", "英", "梅", "鑫", "波", "斌", "莉", "宇", "浩", "凱", "秀珍", "健", "俊", "帆", "雪", "帥", "慧", "旭", "寧", "婷", "玉梅", "龍", "林", "玉珍", "鳳英", "晶", "歡", "玉英", "穎", "紅梅", "佳", "倩", "陽", "建華", "亮", "成", "琴", "蘭英", "暢", "建", "雲", "潔", "峰", "建國", "建軍", "柳", "淑珍", "春梅", "海燕", "晨", "冬梅", "秀榮", "瑞", "桂珍", "瑩", "秀雲", "桂榮", "志強", "秀梅", "麗娟", "婷婷", "玉華", "兵", "雷", "東", "琳", "雪梅", "淑蘭", "麗麗", "玉", "秀芳", "欣", "淑英", "桂芳", "博", "麗華", "丹丹", "彬", "桂香", "坤", "想", "淑華", "榮", "秀華", "桂芝", "岩", "楊", "小紅", "金鳳", "文", "利", "楠", "紅霞", "建平", "瑜", "桂花", "璐", "鳳蘭", ] last_names = [ "趙", "錢", "孫", "李", "周", "吳", "鄭", "王", "馮", "陳", "諸", "衛", "蔣", "沈", "韓", "楊", "朱", "秦", "尤", "許", "何", "呂", "施", "張", "孔", "曹", "嚴", "華", "金", "魏", "陶", "姜", "戚", "謝", "鄒", "喻", "柏", "水", "竇", "章", "雲", "蘇", "潘", "葛", "奚", "范", "彭", "郎", "魯", "韋", "昌", "馬", "苗", "鳳", "花", "方", "俞", "任", "袁", "柳", "酆", "鮑", "史", "唐", "費", "廉", "岑", "薛", "雷", "賀", "倪", "湯", "滕", "殷", "羅", "畢", "郝", "鄔", "安", "常", "樂", "於", "時", "傅", "皮", "卞", "齊", "康", "伍", "余", "元", "卜", "顧", "孟", "平", "黃", "和", "穆", "蕭", "尹", "姚", "邵", "湛", "汪", "祁", "毛", "禹", "狄", "米", "貝", "明", "臧", "計", "伏", "成", "戴", "談", "宋", "茅", "龐", "熊", "紀", "舒", "屈", "項", "祝", "董", "粱", "杜", "阮", "藍", "閔", "席", "季", "麻", "強", "賈", "路", "婁", "危", "江", "童", "顏", "郭", "梅", "盛", "林", "刁", "鍾", "徐", "邱", "駱", "高", "夏", "蔡", "田", "樊", "胡", "凌", "霍", "虞", "萬", "支", "柯", "咎", "管", "盧", "莫", "經", "房", "裘", "繆", "干", "解", "應", "宗", "丁", "宣", "賁", "鄧", "郁", "單", "杭", "洪", "包", "諸", "左", "石", "崔", "吉", "鈕", "龔", "程", "嵇", "邢", "滑", "裴", "陸", "榮", "翁", "荀", "羊", "於", "惠", "甄", "魏", "家", "封", "芮", "羿", "儲", "靳", "汲", "邴", "糜", "松", "井", "段", "富", "巫", "烏", "焦", "巴", "弓", "牧", "隗", "山", "谷", "車", "侯", "宓", "蓬", "全", "郗", "班", "仰", "秋", "仲", "伊", "宮", "寧", "仇", "欒", "暴", "甘", "鈄", "厲", "戎", "祖", "武", "符", "劉", "景", "詹", "束", "龍", "葉", "幸", "司", "韶", "郜", "黎", "薊", "薄", "印", "宿", "白", "懷", "蒲", "邰", "從", "鄂", "索", "咸", "籍", "賴", "卓", "藺", "屠", "蒙", "池", "喬", "陰", "郁", "胥", "能", "蒼", "雙", "聞", "莘", "黨", "翟", "譚", "貢", "勞", "逄", "姬", "申", "扶", "堵", "冉", "宰", "酈", "雍", "卻", "璩", "桑", "桂", "濮", "牛", "壽", "通", "邊", "扈", "燕", "冀", "郟", "浦", "尚", "農", "溫", "別", "庄", "晏", "柴", "翟", "閻", "充", "慕", "連", "茹", "習", "宦", "艾", "魚", "容", "向", "古", "易", "慎", "戈", "廖", "庚", "終", "暨", "居", "衡", "步", "都", "耿", "滿", "弘", "匡", "國", "文", "寇", "廣", "祿", "闕", "東", "毆", "殳", "沃", "利", "蔚", "越", "夔", "隆", "師", "鞏", "厙", "聶", "晁", "勾", "敖", "融", "冷", "訾", "辛", "闞", "那", "簡", "饒", "空", "曾", "毋", "沙", "乜", "養", "鞠", "須", "豐", "巢", "關", "蒯", "相", "查", "後", "荊", "紅", "游", "竺", "權", "逯", "蓋", "益", "桓", "公", "萬", "俟", "司", "馬", "上", "官", "歐", "陽", "夏", "侯", "諸", "葛", "聞", "人", "東", "方", "赫", "連", "皇", "甫", "尉", "遲", "公", "羊", "澹", "台", "公", "冶", "宗", "政", "濮", "陽", "淳", "於", "單", "於", "太", "叔", "申", "屠", "公", "孫", "仲", "孫", "軒", "轅", "令", "狐", "鍾", "離", "宇", "文", "長", "孫", "慕", "容", "鮮", "於", "閭", "丘", "司", "徒", "司", "空", "亓", "官", "司", "寇", "仉", "督", "子", "車", "顓", "孫", "端", "木", "巫", "馬", "公", "西", "漆", "雕", "樂", "正", "壤", "駟", "公", "良", "拓", "跋", "夾", "谷", "宰", "父", "谷", "粱", "晉", "楚", "閆", "法", "汝", "鄢", "塗", "欽", "段", "干", "百", "里", "東", "郭", "南", "門", "呼", "延", "歸", "海", "羊", "舌", "微", "生", "岳", "帥", "緱", "亢", "況", "後", "有", "琴", "梁", "丘", "左", "丘", "東", "門", "西", "門", "商", "牟", "佘", "佴", "伯", "賞", "南", "宮", "墨", "哈", "譙", "笪", "年", "愛", "陽", "佟", ] romanized_formats = ( {{first_romanized_name}} {{last_romanized_name}}, )
推薦閱讀:
※小工具有大用處,編程道路上從此少點煩惱
※十餘年前的入職C語言培訓作業-控制台日曆(下)
※?? 代碼界的美圖秀秀
※簡化深度學習實踐流程:新鮮出爐的TensorFlow項目模板來了
※使用 simpler-paper 快速搭建文檔系統指南