1.导包
import random
import string
import pymysql
import time
import multiprocessing # multiprocessing包是Python中的多进程管理包,支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件
import threading # threading模块中包含了关于线程操作的丰富功能,包括:常用线程函数,线程对象,锁对象,递归锁对象,事件对象,条件变量对象,信号量对象,定时器对象,栅栏对象。
2.造数--生成要写入数据库的数据
# 数据生成部分------------公共------------------------------------------------------------------------------------------------------------------------------(始)
class CreateData(object):
# 获取姓名
def get_name(self):
# 打开文件‘金庸小说人物14部1420人.txt’、‘古龙小说人物男.txt’、‘金庸小说人物女.txt’读取为UTF-8格式;(注:本地txt文件内的人物名之间必须以英文逗号,隔开,不换行,无其它符号)
fp = open("D:\my_python\Scripts\ProjectFile\其他\金庸小说人物14部1420人.txt", "r", encoding="UTF-8")
names_1 = fp.read().split(',') # 读取文件全部内容,并切割成列表
return random.choice(names_1) # 从姓名列表names_1中随机选取一个元素(姓名)并返回
fp.close()
# 获取性别
def get_sex(self):
return random.choice(["男","女"]) # random.randint()的参数应该是一个整数,而不是一个列表,可以将代码修改为:random.choice()
# 获取年龄
def get_age(self):
return random.randint(18,75)
# 获取电话
def get_tel(self):
get_tel = '131'
for i in range(8):
get_tel += str(random.randint(0, 9))
return get_tel
# 获取邮件
def get_emailn(self):
str_char = ""
get_char = string.ascii_letters + string.digits # +string.punctuation # 随机选值的容器:数字、大小写、符号
get_len = random.randint(4, 6) # 定义随机的4~6位数字
for i in range(1, get_len + 1):
str_char += random.choice(get_char)
return str_char
def get_email(self):
return self.get_emailn() + random.choice(["@163.com", "@126.com", "@gmail.com","@outlook.com","@my.com"]) # 此处调用get_email1方法
# 声明一个方法,可以使一条数据放在一个列表
def get_one_data(self):
# 此处返回的数据顺序最好与创建表时的结构顺序一致,以便插入数据时一一对应
return [self.get_name(),self.get_sex(),self.get_age(),self.get_tel(),self.get_email()]
# # 测试代码
# if __name__ == "__main__":
# data = CreateData() # 实例化类方法
# print("姓名:",data.get_name())
# print("性别:",data.get_sex())
# print("年龄:",data.get_age())
# print("电话:",data.get_tel())
# print("邮件:",data.get_email())
#
# 数据生成部分------------公共------------------------------------------------------------------------------------------------------------------------------(止)
2.1.生成姓名需要的txt文件(复制内容到新建文件保存为txt文本),复制文件所在路径到代码中,要绝对路径,否则可能无法读取