首页 > 其他分享 >Faker库模拟数据生成,批量生成手机号,姓名,邮箱,

Faker库模拟数据生成,批量生成手机号,姓名,邮箱,

时间:2024-03-29 11:32:41浏览次数:29  
标签:name Faker 生成 fake csv card 手机号

一、简介

Faker是一个开源的Python库,由Isaac Kelly创建,旨在帮助开发者在测试和开发过程中生成伪造(模拟)数据。这个库能够生成各种类型的信息,包括但不限于姓名、地址、信用卡号、公司名称等,以及各种其他类型的模拟数据,这些数据可以用于填充数据库、创建测试账户、进行单元测试等场景。

Faker是一个功能强大、灵活且易于使用的库,它为开发者提供了一种快速生成模拟数据的有效方法,有助于提高开发效率和软件质量。

二、faker可模拟数据类型

Faker库提供了丰富的功能来生成各种类型的模拟数据。以下是Faker可以模拟的数据类型列表,但请注意,可用的数据类型可能会随着库的更新和不同版本的Faker而有所变化:


个人信息:

名字(first_name, last_name, name)
全名(name)
性别(gender)
出生日期(date_of_birth)
年龄(age)
职业(job)
工号(employee_number)


地址信息:

街道地址(street_address)
城市(city)
省份/州(state)
国家(country)
邮政编码(zip_code)
完整地址(address)


联系方式:

电话号码(phone_number)
传真号码(fax_number)
电子邮件地址(email)
用户名(user_name)
密码(password)


公司信息:

公司名称(company)
行业(industry)
公司邮箱后缀(company_email)


金融信息:

银行账户名(bank_name)
银行账号(bank_account_number)
信用卡号(credit_card_number)
信用卡过期日期(credit_card_expiration_date)
信用卡安全码(credit_card_cvv)


文本内容:

句子(sentence)
段落(paragraph)
单词(word)
标题(title)
随机字符(numerify, letterify, bothify)


网络信息:

URL(url)
用户代理(user_agent)
IP地址(ipv4, ipv6)


时间日期:

时间(time)
日期(date)
月份名称(month_name)
星期几(weekday)


颜色:

颜色名(color_name)
十六进制颜色代码(hex_color)


文件系统:

文件路径(file_path)
目录路径(directory_path)
文件扩展名(file_extension)
文件名(file_name)


图像:

简单图像数据(image_data)
图像URL(image_url)


车辆信息:

车牌号(license_plate)


其他:

随机数字(random_int, random_digit, random_digit_not_null)
随机浮点数(pyfloat)
随机字母(letter, letters)
随机单词(word, words)
随机选择(random_element)
随机布尔值(boolean)
随机二进制(binary)

三、批量生成手机号,身份证号

我们可以使用它进行批量生成手机号码,身份证号

from faker import Faker
import csv

# 初始化Faker对象
fake = Faker()

# 生成一万个模拟身份证号码和银行卡号
fake_ids = [fake.ssn() for _ in range(10000)]  # 注意:Faker的ssn方法生成的不是真实的中国身份证号码,而是类似身份证号码的随机字符串
fake_card_numbers = [fake.credit_card_number() for _ in range(10000)]

# 导出到CSV文件
with open('fake_ids.csv', 'w', newline='', encoding='utf-8') as ids_file:
    with open('fake_card_numbers.csv', 'w', newline='', encoding='utf-8') as card_numbers_file:
        csv_ids = csv.writer(ids_file)
        csv_card_numbers = csv.writer(card_numbers_file)

        csv_ids.writerow(['ID'])
        csv_card_numbers.writerow(['Card Number'])

        for fake_id, fake_card_number in zip(fake_ids, fake_card_numbers):
            csv_ids.writerow([fake_id])
            csv_card_numbers.writerow([fake_card_number])

四、批量生成姓名,电话,邮箱

from faker import Faker
import csv

# 初始化Faker对象
fake = Faker()

# 定义要生成的数据数量
num_records = 10000

# 生成模拟数据
fake_names = [fake.name() for _ in range(num_records)]
fake_phone_numbers = [fake.phone_number() for _ in range(num_records)]
fake_emails = [fake.email() for _ in range(num_records)]

# 导出到CSV文件
with open('fake_data.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Phone Number', 'Email'])

    for name, phone, email in zip(fake_names, fake_phone_numbers, fake_emails):
        writer.writerow([name, phone, email])

五、其他数据批量生成

  1. 地址信息 - 生成各种地址信息,包括街道地址、城市、州、国家、邮政编码等。

    fake.address() # 生成完整的地址信息 
    fake.city() # 生成城市名 
    fake.country() # 生成国家名
  2. 公司信息 - 生成公司相关的信息,如公司名称、行业、职位等。

     
    fake.company()   # 生成公司名称
    fake.industry()   # 生成行业名称
    fake.job()       # 生成职位名称

  3. 金融信息 - 生成银行账户信息、信用卡信息、交易信息等。

     
    fake.bban()      # 生成基于国际银行账户号码(BBAN)格式的账号
    fake.iban()      # 生成国际银行账户号码(SWIFT/IBAN)
    fake.credit_card_number()  # 生成信用卡号

  4. 日期和时间 - 生成各种日期和时间格式的数据。

     
    fake.date()      # 生成一个日期对象
    fake.time()      # 生成一个时间对象
    fake.birthday()   # 生成一个生日日期

  5. 文本内容 - 生成段落文本、句子、单词等。

     
    fake.paragraph() # 生成一段文本
    fake.sentence()  # 生成一句话
    fake.word()      # 生成一个单词

  6. 网络信息 - 生成URL、IPv4/IPv6地址、用户代理字符串等。

     
    fake.url()       # 生成一个URL
    fake.ipv4()      # 生成一个IPv4地址
    fake.ipv6()      # 生成一个IPv6地址
    fake.user_agent() # 生成一个用户代理字符串

  7. 颜色和图像 - 生成颜色代码、图像URL等。

     
    fake.color_name() # 生成一个颜色名称
    fake.hex_color()  # 生成一个十六进制颜色代码

  8. 文件和系统 - 生成文件路径、文件扩展名、操作系统名称等。

     
    fake.file_path() # 生成一个文件路径
    fake.file_extension() # 生成一个文件扩展名
    fake.os()       # 生成一个操作系统名称

  9. 电话号码和电子邮箱 - 生成电话号码和电子邮箱地址。

     
    fake.phone_number() # 生成一个电话号码
    fake.email()      # 生成一个电子邮箱地址

  10. 人名和性别 - 生成名字、姓氏、全名以及性别。

     
    fake.first_name() # 生成一个名字
    fake.last_name()  # 生成一个姓氏
    fake.name()       # 生成一个全名
    fake.gender()     # 生成一个性别

  11. 车辆信息 - 生成车牌号码、车辆品牌、车型等。

     
    fake.license_plate() # 生成一个车牌号码
    fake.vehicle()     # 生成一个车辆品牌和型号

标签:name,Faker,生成,fake,csv,card,手机号
From: https://blog.csdn.net/qq_39046854/article/details/137139014

相关文章

  • python 根据 字符串生成唯一值
    目录Python根据字符串生成唯一值方法一:利用哈希算法生成唯一值方法二:使用UUID生成唯一值方法三:结合加密算法生成唯一值用户注册唯一标识符UUID(UniversallyUniqueIdentifier)特点:UUID版本:Python中使用UUID:应用场景:Python根据字符串生成唯一值在很多应用场景中,我......
  • Java 快递地址 自动识别地址省市区、手机号、姓名,地址自动补全省市区 速度高达1万/秒
    公司每天需处理大量快递地址,需要将一段字符串进行解析出省、市、区、街道、详细地址、手机、姓名。类似淘宝的地址自动识别,并且需要解析到具体的楼栋单元户室。研究了好久,终于写出了一个Java版的解析算法。下载地址:https://download.csdn.net/download/u011024436/89035851算......
  • Python3 迭代器与生成器
    在Python中,迭代器(Iterator)是一个用于迭代访问集合元素的对象。迭代器会记住遍历的位置,使得我们可以依次访问集合中的每个元素而不必了解集合内部结构。在Python中,内置的​iter()​函数用于从可迭代对象(如字符串、列表、元组等)中创建迭代器,而​next()​函数则用于获取迭代器......
  • KingbaseES生成动态SQL
    1.动态SQL动态SQL在程序启动时会根据输入参数替换相应变量。使用动态SQL可以创建更强大和灵活的应用程序,但在编译时SQL语句的全文不确定,因此运行时编译会牺牲一些性能。动态SQL可以是代码或SQL语句的一部分,动态部分要么由开发人员输入,要么由程序本身创建。1.1动态SQL使用场景......
  • KingbaseES自动生成列介绍
    在KingbaseES中createtable语句支持GENERATEDcolumn(生成列)。生成列是一种特别的列类型,它的值基于其他列的值计算得出。因此,生成列之于列,有点像视图之于表的关系。存在两种类型的生成列:存储生成列和虚拟生成列。存储生成列在数据被写入(插入或更新操作)时进行计算,并且像常规列......
  • 使用fabric.js框选图片区域并生成svg图
    仍然是在图片上特定区域根据数值显示不同的颜色的需求,改进下代码。增加了测量辅助线、对齐辅助线、生成svg图等,基本满足需求。demo中包括了生成json、svg字符串和下载svg图。<scriptsrc="../plugins/fabric.min.js"></script><scriptsrc="../plugins/aligning_guidelines.......
  • Excel生成随机密码
    针对生成一个8到12位包含大小写字母、数字、以及特殊字符的随机密码的需求,我们可以采用VBA来实现,以确保每种字符至少包含一次,同时随机生成密码长度。下面是一个更贴近需求的VBA函数示例:FunctionGenerateComplexPassword()AsStringDimpasswordLengthAsIntegerDim......
  • 两分钟1200帧的长视频生成器StreamingT2V来了,代码将开源
      ChatGPT狂飙160天,世界已经不是之前的样子。新建了人工智能中文站https://ai.weoknow.com每天给大家更新可用的国内可用chatGPT资源发布在https://it.weoknow.com更多资源欢迎关注 广阔的战场,风暴兵在奔跑……prompt:Wideshotofbattlefield,stormtroopersrun......
  • 将markmap生成的svg脑图转为png并下载
    将markmap生成的svg脑图转为png并下载markmap是一个非常方便的库,可以直接将md格式转为思维导图。在开发过程中我发现,目前没有将markmap生成的脑图转为png格式保存的代码或是插件。以下是我给出的解决方案这是一段svg标签,用来生成markmap的容器,具体生成的代码不多赘述。<divc......
  • vue3 - 最新手机扫码PC网站二维码登录功能,用手机端扫描PC端vue3网页的登录二维码,然后
    效果图在vue3开发中,详细实现“PC电脑网站生成微信登录二维码+手机扫码登录+双端同步数据”,利用扫码实现网站登录功能、用户用手机扫描电脑端二维码进行登录的详细教程步骤(电脑端PC网页、手机端都是vue3开发,支持将手机端改造成微信小程序、uniapp安卓苹果app、H5网页等。)......