Python生成大量随机人员信息

有时候我们会需要大量数据来演示或者测试某些功能,但是可能无法获得这些数据,或者担心泄露信息而不想使用真实数据。这时,我们可以自己生成一些随机数据。

import random

import string

def getEmail():

    # of course you can extend the following list

    suffix = ['.com', '.org', '.net', '.cn']

    characters = string.ascii_letters + string.digits + '_'

    username = ''.join((random.choice(characters) for i in range(random.randint(6,12))))

    domain = ''.join((random.choice(characters) for i in range(random.randint(3,6))))

    return username + '@' + domain + random.choice(suffix)

def getTelNo():

    return ''.join((str(random.randint(0,9)) for i in range(11)))

def getNameOrAddress(flag):

    '''flag=1 means Name,

       flag=0 meains Address'''

    #[0x4e00, 0x9fa5] is the range of Chinese character code 

    start, end = 0x4e00, 0x9fa5 

    result = ''

    #the length of most Chinese people's name is between 2 and 4

    if flag==1:

        rangestart, rangeend = 2, 5

    #here suppose the address contains at most 30 Chinese Characters

    elif flag==0:

        rangestart, rangeend = 10, 30

    else:

        print('flag must be 1 or 0')

        return

    for i in range(rangestart, rangeend):

        result += chr(random.randint(start, end))

    return result

def getSex():

    return random.choice(('男', '女'))

def getAge():

    return str(random.randint(18,100))

def main(filename):

    with open(filename, 'w', encoding='utf-8') as fp:

        fp.write('Name,Sex,Age,TelNO,Address,Email\n')

        #quickly generate information of 2000 persons

        for i in range(2000):

            name = getNameOrAddress(1)

            sex = getSex()

            age = getAge()

            tel = getTelNo()

            address = getNameOrAddress(0)

            email = getEmail()

            line = '{0},{1},{2},{3},{4},{5}\n'.format(name, sex, age, tel, address, email)

            fp.write(line)

            

def output(filename):

    with open(filename, 'r', encoding='utf-8') as fp:

        for line in fp:

            print(line.strip())

            

if __name__=='__main__':

    filename = 'information.txt'

    main(filename)

    output(filename)

温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

欢迎转发给您的朋友,或许这正是Ta需要的知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值