这两天公司做了一个抽奖活动,需要将一些excel的文档转换成带有*号的形式发表到公众号上,由于每天都有固定的数据量,随即想到用python脚本实现生成随机姓名和电话,以及中奖信息。
首先引入需要用到的包。
#!/usr/bin/env python # -*- coding:utf-8 -*- import xlwt import xlrd from xlrd import * from xlutils.copy import copy from datetime import datetime import time import random
然后准备需要的数据,这里要生成随机姓名,首先要准备百家姓,还有实用的名字,名字我也是找很久没找到,后面自己去网上复制一些名字,然后用join把所有的字加上“”,生成单个字符。然后会用到三大运营商手机号段。以及中奖的金额。
list_tel=['134','135','136','137','138','139','147','150','151','152','157','158','159','178', '182','183','184','187','188','198','130','131','132','155','156','145','176','185', '186','166','133','149','153','173','177','180','181','189','199'] list_tel4=['0','1','2','3','4','5','6','7','8','9'] list_firstname=['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '楮', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', ] list_midname=['梦','琪','忆','柳','之','绿','冰','蓝','灵','槐','平','安','书','翠','翠','风', '香','巧','代','云','梦','曼','幼','翠','友','巧','听','寒','梦','柏','醉','易', '旋','亦','玉','凌','萱','访','卉','怀','亦','笑','蓝','春','翠','靖','柏','夜', '蕾','冰','夏','梦','松','书','雪','乐','枫','念','薇','靖','雁','寻','春','恨', '山','从','寒','忆','香','觅','波','静','曼','凡','旋','以','亦','念','露','芷', '蕾','千','兰','新','波','代','真','新','蕾','雁','玉','冷','卉','紫','山','千', '琴','恨','天','傲','芙','盼','山','怀','蝶','冰','兰','山','柏','翠','萱','恨', '松','问','旋','从','南','白','易','问','筠','如','霜','半','芹','丹','珍','冰', '彤','亦','寒','寒','雁','怜','云','寻','文','乐','丹','翠','柔','谷','山','之', '瑶','冰','露','尔','珍','谷','雪','乐','萱','涵','菡','海','莲','傲','蕾','青', '槐','冬','儿','易','梦','惜','雪','宛','海','之','柔','夏','青','亦','瑶','妙', '菡','春','竹','痴','梦','紫','蓝','晓','巧','幻','柏','元','风','冰','枫','访', '蕊','南','春','芷','蕊','凡','蕾','凡','柔','安','蕾','天','荷','含','玉','书', '兰','雅','琴','书','瑶','春','雁','从','安','夏','槐','念','芹','怀','萍','代', '曼','幻','珊','谷','丝','秋','翠','白','晴','海','露','代','荷','含','玉','书', '蕾','听','白','访','琴','灵','雁','秋','春','雪','青','乐','瑶','含','烟','涵', '双','平','蝶','雅','蕊','傲','之','灵','薇','绿','春','含','蕾','从','梦','从', '蓉','初','丹','听','兰','听','蓉','语','芙','夏','彤','凌','瑶','忆','翠','幻', '灵','怜','菡','紫','南','依','珊','妙','竹','访','烟','怜','蕾','映','寒','友', '绿','冰','萍','惜','霜','凌','香','芷','蕾','雁','卉','迎','梦','元','柏','代', '萱','紫','真','千','青','凌','寒','紫','安','寒','安','怀','蕊','秋','荷','涵', '雁','以','山','凡','梅','盼','曼','翠','彤','谷','冬','新','巧','冷','安','千', '萍','冰','烟','雅','阳','友','绿','南','松','诗','云','飞','风','寄','灵','书', '芹','幼','蓉','以','蓝','笑','寒','忆','寒','秋','烟','芷','巧','水','香','映', '之','醉','波','幻','莲','夜','山','芷','卉','向','彤','小','玉','幼','南','凡', '梦','尔','曼','念','波','迎','松','青','寒','笑','天','涵','蕾','碧','菡','映', '秋','盼','烟','忆','山','以','寒','寒','香','小','凡','代','亦','梦','露','映', '波','友','蕊','寄','凡','怜','蕾','雁','枫','水','绿','曼','荷','笑','珊','寒', '珊','谷','南','慕','儿','夏','岚','友','儿','小','萱','紫','青','妙','菱','冬', '寒','曼','柔','语','蝶','青','筠','夜','安','觅','海','问','安','晓','槐','雅', '山','访','云','翠','容','寒','凡','晓','绿','以','菱','冬','云','含','玉','访', '枫','含','卉','夜','白','冷','安','灵','竹','醉','薇','元','珊','幻','波','盼', '夏','元','瑶','迎','曼','水','云','访','琴','谷','波','乐','之','笑','白','之', '山','妙','海','紫','霜','平','夏','凌','旋','孤','丝','怜','寒','向','萍','凡', '松','青','丝','翠','安','如','天','凌','雪','绮','菱','代','云','南','莲','寻', '南','春','文','香','薇','冬','灵','凌','珍','采','绿','天','春','沛','文','紫', '槐','幻','柏','采','文','春','梅','雪','旋','盼','海','映','梦','安','雁','映', '容','凝','阳','访','风','天','亦','平','绿','香','风','霜','雪','柳','雪','靖', '白','梦','飞','绿','如','波','又','晴','友','香','菱','冬','亦','问','妙','春', '海','冬','半','安','平','春','幼','柏','秋','灵','凝','芙','念','烟','白','山', '从','灵','尔','芙'] list_lastname=['梦','琪','忆','柳','之','绿','冰','','蓝','灵','槐','平','安','书','翠','翠','风', '香','巧','代','云','梦','曼','','幼','翠','友','巧','听','寒','梦','柏','醉','易', '旋','亦','玉','凌','','萱','访','卉','怀','亦','笑','蓝','春','翠','靖','柏','夜', '蕾','冰','夏','梦','','松','书','雪','','乐','枫','','念','薇','靖','雁','寻','春','恨', '山','从','寒','忆','香','觅','波','静','曼','凡','旋','','以','亦','念','露','芷', '蕾','','千','兰','新','波','代','真','新','蕾','雁','玉','冷','卉','紫','山','千', '','琴','恨','天','傲','芙','盼','山','怀','蝶','冰','兰','山','柏','翠','萱','恨', '松','问','','旋','从','','南','白','','易','问','筠','如','霜','半','芹','丹','珍','冰', '彤','亦','寒','寒','雁','怜','','云','寻','','文','乐','丹','翠','柔','谷','山','之', '瑶','冰','露','尔','珍','谷','雪','乐','萱','','涵','菡','海','莲','傲','蕾','青', '槐','冬','儿','易','梦','惜','','雪','宛','海','之','柔','夏','青','亦','瑶','妙', '菡','春','竹','痴','梦','紫','','蓝','晓','巧','幻','','柏','元','风','冰','枫','访', '蕊','南','春','芷','蕊','凡','蕾','凡','柔','安','蕾','','天','荷','含','玉','书', '兰','雅','琴','书','瑶','春','雁','从','安','夏','槐','念','芹','怀','萍','代', '曼','幻','珊','谷','丝','秋','翠','白','晴','海','露','代','','荷','含','玉','书', '蕾','听','白','访','琴','灵','雁','秋','春','雪','青','乐','瑶','含','烟','涵', '双','平','蝶','雅','蕊','','傲','之','灵','薇','绿','春','含','蕾','从','梦','从', '蓉','初','丹','听','兰','','听','蓉','语','芙','夏','彤','凌','瑶','忆','翠','幻', '灵','怜','菡','紫','南','依','珊','妙','竹','访','烟','怜','蕾','映','寒','友', '绿','冰','萍','惜','霜','','凌','香','芷','蕾','','雁','卉','迎','梦','元','柏','代', '萱','紫','真','千','青','凌','寒','紫','安','','寒','安','怀','蕊','秋','荷','涵', '雁','以','山','凡','梅','盼','曼','翠','彤','谷','冬','新','巧','冷','安','千', '萍','冰','烟','雅','阳','友','绿','南','松','诗','云','飞','风','寄','灵','书', '芹','幼','蓉','以','蓝','笑','寒','忆','寒','','秋','烟','芷','巧','水','香','映', '之','醉','波','幻','莲','夜','山','芷','卉','向','彤','小','玉','幼','南','凡', '梦','尔','曼','念','波','迎','松','青','寒','笑','天','涵','蕾','碧','菡','映', '秋','盼','烟','忆','山','以','寒','寒','香','','小','凡','代','亦','梦','露','映', '波','友','蕊','寄','凡','怜','蕾','雁','枫','','水','绿','曼','荷','笑','珊','寒', '珊','谷','南','慕','儿','夏','岚','友','儿','','小','萱','紫','青','妙','菱','冬', '寒','曼','柔','语','蝶','青','筠','夜','安','','觅','海','问','安','晓','槐','雅', '山','访','云','翠','容','寒','凡','晓','绿','','以','菱','冬','云','含','玉','访', '枫','含','卉','夜','白','冷','安','灵','竹','','醉','薇','元','珊','幻','波','盼', '夏','元','瑶','迎','曼','水','云','访','琴','','谷','波','乐','之','笑','白','之', '山','妙','海','紫','霜','平','夏','凌','旋','','孤','丝','怜','寒','向','萍','凡', '松','青','丝','翠','安','如','天','凌','雪','','绮','菱','代','云','南','莲','寻', '南','春','文','香','薇','冬','灵','凌','珍','采','绿','天','春','沛','文','紫', '槐','幻','柏','采','文','春','梅','雪','旋','盼','海','映','梦','安','雁','映', '容','凝','阳','访','风','天','亦','平','绿','香','风','霜','雪','柳','雪','靖', '白','梦','飞','绿','如','波','又','晴','友','香','菱','冬','亦','问','妙','春', '海','冬','半','安','平','','','','','','','春','幼','柏','秋','灵','凝','芙', '念','烟','白','山','从','灵','尔','芙'] list_price=['5元话费','10元话费','30元话费','50元话费','100元话费'] #中奖列表
最后开始处理数据
由于中间号码和名字需要展示为*,这里的方法有点笨。
由于一部分人是单字名,所以第三组姓名的数据中可以放一些空值,就可以生成一个姓一个名的名字了。
filename =xlwt.Workbook() #新建工作簿 sheet1=filename.add_sheet("名单") for i in range(259): #随机生成姓名
name = random.choice(list_firstname)+random.choice(list_midname)+random.choice(list_lastname) if len(name) == 2: name = name[0] + "*" else: name = name[0] + "*" + name[2] phone = random.choice(list_tel)+tel_mid+random.choice(list_tel4)+random.choice(list_tel4) + random.choice(list_tel4)+random.choice(list_tel4) price = random.choice(list_price) sheet1.write(i, 0, name) #依次是行号,列号,存入的数据 sheet1.write(i, 1, phone) sheet1.write(i, 2, price) print(name,phone,price) filename.save(r"C:\Users\Administrator\Desktop\python\21日随机数据.xlsx")新建工作簿之后一定要有保存的代码和路径,否则你会看不见你新建的工作簿。
第一次分享,感触颇深,还有很多需要完善的地方,欢迎大家批评指正。