python随机生成个人信息

python随机生成个人信息

python随机生成个人信息

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import sys
import random class PersonalInformation():
# 生成姓名
def Names_of_generated(self):
list_Xing = [
'赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦',
'尤', '许', '何', '吕', '施', '张', '孔', '曹', '墨', '哈', '谯', '笪', '年', '爱', '阳', '佟', '言', '福',
'严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '牟', '佘',
'潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬',
'安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄',
'和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏',
'成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '粱', '杜', '阮', '蓝', '闵',
'席', '季', '麻', '强', '贾', '路', '娄', '危', '江', '童', '颜', '郭', '梅', '盛', '林', '刁', '钟', '徐',
'邱', '骆', '高', '夏', '蔡', '田', '樊', '胡', '凌', '霍', '虞', '万', '支', '柯', '昝', '管', '卢', '莫',
'经', '房', '裘', '缪', '干', '解', '应', '宗', '丁', '宣', '贲', '邓', '郁', '单', '杭', '洪', '包', '诸',
'左', '石', '崔', '吉', '钮', '龚', '程', '嵇', '邢', '滑', '裴', '陆', '荣', '翁', '荀', '羊', '於', '惠',
'甄', '麴', '家', '封', '芮', '羿', '储', '靳', '汲', '邴', '糜', '松', '井', '段', '富', '巫', '乌', '焦',
'巴', '弓', '牧', '隗', '山', '谷', '车', '侯', '宓', '蓬', '全', '郗', '班', '仰', '秋', '仲', '伊', '宫',
'宁', '仇', '栾', '暴', '甘', '钭', '厉', '戎', '祖', '武', '符', '刘', '景', '詹', '束', '龙', '叶', '幸',
'司', '韶', '郜', '黎', '蓟', '薄', '印', '宿', '白', '怀', '蒲', '邰', '从', '鄂', '索', '咸', '籍', '赖',
'卓', '蔺', '屠', '蒙', '池', '乔', '阴', '欎', '胥', '能', '苍', '双', '闻', '莘', '党', '翟', '谭', '贡',
'劳', '逄', '姬', '申', '扶', '堵', '冉', '宰', '郦', '雍', '舄', '璩', '桑', '桂', '濮', '牛', '寿', '通',
'边', '扈', '燕', '冀', '郏', '浦', '尚', '农', '温', '别', '庄', '晏', '柴', '瞿', '阎', '充', '慕', '连',
'茹', '习', '宦', '艾', '鱼', '容', '向', '古', '易', '慎', '戈', '廖', '庾', '终', '暨', '居', '衡', '步',
'都', '耿', '满', '弘', '匡', '国', '文', '寇', '广', '禄', '阙', '东', '殴', '殳', '沃', '利', '蔚', '越',
'夔', '隆', '师', '巩', '厍', '聂', '晁', '勾', '敖', '融', '冷', '訾', '辛', '阚', '那', '简', '饶', '空',
'曾', '毋', '沙', '乜', '养', '鞠', '须', '丰', '巢', '关', '蒯', '相', '查', '後', '荆', '红', '游', '竺',
'权', '逯', '盖', '益', '桓', '商', '佴', '伯', '赏', '闫', '法', '汝', '鄢', '涂', '钦', '帅', '缑', '亢',
'况', '后', '有', '琴', '仉', '督', '归', '海', '岳', '公', '晋', '娜', '静', '楚', '惠', '倩', '婷', '宁',
'万俟', '司马', '上官', '欧阳', '夏侯', '诸葛', '闻人', '乐正', '壤驷', '公良', '拓跋', '漆雕', '夹谷', '宰父',
'东方', '赫连', '皇甫', '尉迟', '公羊', '澹台', '公冶', '宗政', '濮阳', '淳于', '单于', '太叔', '申屠', '公孙',
'仲孙', '南宫', '南门', '呼延', '羊舌', '微生', '梁丘', '左丘', '东门', '西门', '东郭', '巫马', '公西', '谷梁',
'轩辕', '令狐', '钟离', '宇文', '长孙', '慕容', '鲜于', '闾丘', '司徒', '司空', '亓官', '司寇', '颛孙', '端木',
'子车', '百里', '段干'
]
list_Ming = [
'伟', '刚', '勇', '毅', '俊', '峰', '强', '军', '平', '保', '东', '文', '辉', '力', '明', '永', '健', '世',
'广', '志', '义', '兴', '轮', '翰', '朗', '惠', '珠', '翠', '莉', '桂', '娣', '筠', '柔', '竹', '婕', '馨',
'飞', '彬', '富', '顺', '信', '子', '杰', '涛', '昌', '成', '康', '星', '光', '天', '达', '安', '岩', '中',
'茂', '进', '林', '有', '伯', '雅', '叶', '霭', '苑', '瑗', '绍', '功', '松', '徐', '孺', '饯', '子', '徐',
'厚', '庆', '磊', '民', '友', '裕', '河', '哲', '江', '超', '浩', '亮', '政', '谦', '亨', '奇', '固', '之',
'致', '树', '炎', '德', '行', '时', '泰', '盛', '秀', '娟', '英', '华', '慧', '巧', '美', '娜', '静', '淑',
'雪', '荣', '爱', '妹', '霞', '香', '月', '莺', '媛', '艳', '瑞', '凡', '佳', '嘉', '琼', '勤', '珍', '贞',
'怡', '婵', '雁', '蓓', '纨', '仪', '荷', '丹', '蓉', '眉', '君', '琴', '蕊', '薇', '菁', '梦', '岚', '苑',
'飘', '育', '馥', '琦', '晶', '妍', '茜', '秋', '珊', '莎', '锦', '黛', '青', '倩', '婷', '宁', '蓓', '纨',
'良', '海', '山', '仁', '波', '宁', '贵', '福', '生', '龙', '元', '全', '国', '胜', '学', '祥', '才', '发',
'武', '新', '利', '清', '善', '希', '地', '灵', '枝', '思', '丽', '瑾', '颖', '露', '云', '莲', '真', '环',
'坚', '和', '彪', '博', '诚', '先', '敬', '震', '振', '壮', '会', '思', '群', '豪', '心', '邦', '承', '乐',
'宏', '言', '若', '鸣', '朋', '斌', '梁', '栋', '维', '启', '克', '伦', '翔', '旭', '鹏', '泽', '晨', '辰',
'芝', '玉', '萍', '红', '娥', '玲', '芬', '芳', '燕', '彩', '春', '菊', '兰', '凤', '洁', '梅', '琳', '素',
'璧', '璐', '娅', '琦', '晶', '妍', '茜', '秋', '珊', '莎', '锦', '黛', '青', '倩', '婷', '姣', '婉', '娴',
'凝', '晓', '欢', '霄', '枫', '芸', '菲', '寒', '欣', '滢', '伊', '亚', '宜', '可', '姬', '舒', '影', '荔',
'琰', '韵', '融', '园', '艺', '咏', '卿', '聪', '澜', '纯', '毓', '悦', '昭', '冰', '爽', '琬', '茗', '羽',
'引', '瓯', '越', '物', '华', '天', '宝', '龙', '光', '射', '牛', '斗', '之', '墟', '人', '杰', '地', '灵',
'士', '以', '建', '家', '瑶', '秀'
]
return random.choice(list_Xing) + random.choice(list_Ming) + random.choice(list_Ming) # 生成有效手机号码
def phoneNORandomGenerator(self):
prelist = ["", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", ""]
return random.choice(prelist) + "".join(random.choice("") for i in range(8)) def emaliInfo(self, phone):
eList = ['@163.com', '@126.com', '@qq.com',
'@sina.com', '@soho.com', '@yeah.com', '@139.com']
return phone + random.choice(eList) def ageInfo(self):
return random.randint(12, 60) def sexInfo(self):
sex = random.choice(['男', '女'])
return sex def getBirthday(self):
# 随机生成年月日
year = random.randint(1960, 2000)
month = random.randint(1, 12)
# 判断每个月有多少天随机生成日
if year % 4 == 0:
if month in (1, 3, 5, 7, 8, 10, 12):
day = random.randint(1, 31)
elif month in (4, 6, 9, 11):
day = random.randint(1, 30)
else:
day = random.randint(1, 29)
else:
if month in (1, 3, 5, 7, 8, 10, 12):
day = random.randint(1, 31)
elif month in (4, 6, 9, 11):
day = random.randint(1, 30)
else:
day = random.randint(1, 28)
# 小于10的月份前面加0
if month < 10:
month = '' + str(month)
if day < 10:
day = '' + str(day)
birthday = str(year) + str(month) + str(day)
return birthday def idnum(self, Birthday, sex):
province_id = [11, 12, 13, 14, 15, 21, 22, 23, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 50, 51, 52,
53, 54, 61, 62, 63, 65, 65, 81, 82, 83]
id_num = ''
# 随机选择地址码
id_num += str(random.choice(province_id))
# 随机生成4-6位地址码
for i in range(4):
ran_num = str(random.randint(0, 9))
id_num += ran_num
b = Birthday
id_num += b
# 生成15、16位顺序号
num = ''
for i in range(2):
num += str(random.randint(0, 9))
id_num += num
# 通过性别判断生成第十七位数字 男单 女双
s = sex
if s == '男':
# 生成奇数
seventeen_num = random.randrange(1, 9, 2)
else:
seventeen_num = random.randrange(2, 9, 2) id_num += str(seventeen_num)
eighteen_num = str(random.randint(1, 10))
if eighteen_num == '':
eighteen_num = 'X'
id_num += eighteen_num
return id_num def PersonalInfo():
PersonalInfo = PersonalInformation()
info = {}
info['name'] = PersonalInfo.Names_of_generated()
info['age'] = PersonalInfo.ageInfo()
info['sex'] = PersonalInfo.sexInfo()
info['birthday'] = PersonalInfo.getBirthday()
info['idnum'] = PersonalInfo.idnum(info['birthday'], info['sex'])
info['phone'] = PersonalInfo.phoneNORandomGenerator()
info['emali'] = PersonalInfo.emaliInfo(info['phone']) return info PersolInfo = PersonalInfo()
print(PersolInfo)

插入到数据库,继上面的脚本

from sqlalchemy import create_engine, Table, MetaData
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, scoped_session
import threading
'''
--- 创建数据表;
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
`id` int() NOT NULL AUTO_INCREMENT,
`name` varchar() DEFAULT NULL,
`email` varchar() DEFAULT NULL,
`age` int() DEFAULT NULL,
`sex` varchar() default '男',
`birthday` char() DEFAULT NULL,
`idnumber` char() DEFAULT NULL,
`phone` char() DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
''' if __name__ == '__main__':
DB_USERNAME = 'lis' # 数据库 用户
DB_PASSWORD = '' # 密码
DB_HOSTIP = '10.10.10.24' # IP
DB_PORT = '' # 端口
DB_DATABASE = 'test' #库名
engine = create_engine(
'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % (DB_USERNAME, DB_PASSWORD, DB_HOSTIP, DB_PORT, DB_DATABASE))
DBsession = sessionmaker(bind=engine)
dbsession = scoped_session(DBsession) # 线程安全
Base = declarative_base()
md = MetaData(bind=engine) # 自动加载表结构 class Userinfo(Base):
__table__ = Table('Userinfo', md, autoload=True) def install():
PerInfo = PersonalInfo()
user = Userinfo(name=PerInfo['name'],email=PerInfo['emali'], age=PerInfo['age'],sex=PerInfo['sex'],birthday= PerInfo['birthday'],idnumber=PerInfo['idnum'],phone=PerInfo['phone'])
dbsession.add(user)
dbsession.commit() threads = []
for i in range():
t = threading.Thread(target=install)
threads.append(t)
# 打开线程活动
for thr in threads:
thr.start()
# 等待至线程中止
for thr in threads:
thr.join()

参考博客: https://www.cnblogs.com/lxmtx/p/11840221.html

05-11 22:10