python制造虚拟姓名电话保存到mysql数据库

#启动命令:1、python test.py
import os
# 开始-需要安装的模块列表
#需要安装的库
libs = ["requests","mysql-connector-python"]
#循环遍历安装
for lib in libs:os.system("pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  " + lib)# import
import mysql.connector
import random#生产名字和电话
def random_name():# 删减部分,比较大众化姓氏firstName = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻水云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳鲍史唐费岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅卞齐康伍余元卜顾孟平" \"黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计成戴宋茅庞熊纪舒屈项祝董粱杜阮席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田胡凌霍万柯卢莫房缪干解应宗丁宣邓郁单杭洪包诸左石崔吉" \"龚程邢滑裴陆荣翁荀羊甄家封芮储靳邴松井富乌焦巴弓牧隗山谷车侯伊宁仇祖武符刘景詹束龙叶幸司韶黎乔苍双闻莘劳逄姬冉宰桂牛寿通边燕冀尚农温庄晏瞿茹习鱼容向古戈终居衡步都耿满弘国文东殴沃曾关红游盖益桓公晋楚闫"# 百家姓中双姓氏firstName2 = "万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于单于太叔申屠公孙仲孙轩辕令狐钟离宇文长孙慕容鲜于闾丘司徒司空亓官司寇仉督子颛孙端木巫马公西漆雕乐正壤驷公良拓跋夹谷宰父谷梁段干百里东郭南门呼延羊舌微生梁丘左丘东门西门南宫南宫"# 女孩名字girl = '秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽'# 男孩名字boy = '伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘'# 名name = '中笑贝凯歌易仁器义礼智信友上都卡被好无九加电金马钰玉忠孝'# 10%的机遇生成双数姓氏if random.choice(range(100)) > 10:firstName_name = firstName[random.choice(range(len(firstName)))]else:i = random.choice(range(len(firstName2)))firstName_name = firstName2[i:i + 2]sex = random.choice(range(2))name_1 = ""# 生成并返回一个名字if sex > 0:girl_name = girl[random.choice(range(len(girl)))]if random.choice(range(2)) > 0:name_1 = name[random.choice(range(len(name)))]return firstName_name + name_1 + girl_nameelse:boy_name = boy[random.choice(range(len(boy)))]if random.choice(range(2)) > 0:name_1 = name[random.choice(range(len(name)))]return firstName_name + name_1 + boy_namedef create_sfz():# 第二位数字second = [3, 4, 5, 7, 8][random.randint(0, 4)]# 第三位数字third = {3: random.randint(0, 9),4: [5, 7, 9][random.randint(0, 2)],5: [i for i in range(10) if i != 4][random.randint(0, 8)],7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)],8: random.randint(0, 9),}[second]# 最后八位数字suffix = random.randint(9999999,100000000)suffix7 = random.randint(999999, 10000000)# 拼接手机号return "1{}{}{}{}".format(second, third, suffix,suffix7)def create_phone():# 第二位数字second = [3, 4, 5, 7, 8][random.randint(0, 4)]# 第三位数字third = {3: random.randint(0, 9),4: [5, 7, 9][random.randint(0, 2)],5: [i for i in range(10) if i != 4][random.randint(0, 8)],7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)],8: random.randint(0, 9),}[second]# 最后八位数字suffix = random.randint(9999999,100000000)# 拼接手机号return "1{}{}{}".format(second, third, suffix)   #创建多个姓名、身份证号、与电话号码
# def create_nameAndIdCardAndPhoneNumber(length):
#     person_info_list = list()
#     for _ in range(length):
#         name = random_name()
#         id_card = create_sfz()
#         phone = create_phone()
#         person_info_list.append((name, id_card, phone))
#     return person_info_list# # 创建10个人的姓名、身份证号和电话号码
# persons = create_nameAndIdCardAndPhoneNumber(10)# # 打印个人信息
# for name, id_card, phone in persons:
#     print(f"name: {name}, idCard: {id_card}, phoneNumber: {phone}")#  开始----正式脚本
#1. 创建数据库连接
db = mysql.connector.connect(host="xxxx",  # MySQL服务器地址user="xxx",   # 用户名password="xxxx",  # 密码database="xxxxx"  # 数据库名称
)try:# 开启事务db.start_transaction() # 创建游标对象,用于执行SQL查询cursor = db.cursor()# 查询所有记录cursor.execute("SELECT id,grid_code,grid_name,head,head_phone FROM forestry_management.grid_data_management")# 获取查询结果results = cursor.fetchall()resultsLength = len(results)for row in results:id,grid_code,grid_name,head,head_phone = rowprint(f"id:{id},grid_code:{grid_code},grid_name:{grid_name},head:{head},head_phone:{head_phone}")name = random_name()id_card = create_sfz()phone = create_phone()sql = "update grid_data_management set head='%s',head_phone='%s' where id='%s'" % (name,phone,id)# 执行SQL语句cursor.execute(sql)print("Update data list,The number of results is %s" % (resultsLength));db.commit()  # 提交事务
except Exception as e:db.rollback()  # 事务回滚,撤销之前的操作print("Transaction rolled back:", e)
finally:# 关闭游标和数据库连接cursor.close() db.close()     print('end :completion of enforcement')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刷代码随想录有感(27):重复的子字符串

题干&#xff1a; 代码&#xff1a; class Solution { public:void getNext(int *next, string &s){int j 0;next[0] 0;for(int i 1; i < s.size(); i){while(j > 0 && s[i] ! s[j]){j next[j - 1];}if(s[i] s[j]){j;}next[i] j;}}bool repeatedSubst…

Javascrip变量定义使用技巧

在JavaScript中&#xff0c;var、const 和 let 都是用来声明变量的关键字&#xff0c;但它们之间存在一些重要的相同点和差异点。 现代的JavaScript开发中&#xff0c;推荐优先使用 const 和 let&#xff0c;并尽量避免使用 var&#xff0c;以编写更可靠、更易于维护的代码。 …

Java并查集(含面试大厂题和源码)

并查集&#xff08;Union-Find&#xff09;是一种用于处理一些不交集合合并及集合间元素查找问题的数据结构。它提供了两个主要的操作&#xff1a;查找&#xff08;Find&#xff09;和合并&#xff08;Union&#xff09;。查找操作用于确定某个元素属于哪个集合&#xff0c;而合…

学习基于pytorch的VGG图像分类 day2

注&#xff1a;本系列博客在于汇总CSDN的精华帖&#xff0c;类似自用笔记&#xff0c;不做学习交流&#xff0c;方便以后的复习回顾&#xff0c;博文中的引用都注明出处&#xff0c;并点赞收藏原博主. 目录 VGG网络搭建&#xff08;模型文件&#xff09; 1.字典文件配置 2.提取…

基于java+springboot+vue实现的农产品智慧物流系统(文末源码+Lw)23-239

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…

Python创建现代GUI应用程序库之ttkbootstrap使用详解

概要 ttkbootstrap是一个基于Python的Tkinter库构建的,用于创建现代GUI应用程序。它结合了Tkinter的简洁性和Bootstrap框架的美观,提供了丰富的组件和样式,使开发人员能够快速构建美观、响应式的桌面应用程序。 安装 通过pip可以轻松安装ttkbootstrap: pip install ttkb…

CentOS 7详细介绍。

CentOS 7是CentOS项目发布的开源类服务器操作系统&#xff0c;自2014年7月7日正式发布以来&#xff0c;它已成为企业级Linux发行版本的佼佼者。CentOS 7不仅继承了其前身的优势&#xff0c;还在性能、安全性和易用性方面进行了显著的提升。以下是对CentOS 7的详细介绍。 一、C…

阿里云服务器北京地域多少钱?北京地域最新收费标准及便宜购买教程

阿里云服务器在国内有十几个地域可选&#xff0c;北京地域主要适合北方用户选择&#xff0c;2024年阿里云中国内地地域云服务器做了降价调整&#xff0c;因此收费标准也有所变化&#xff0c;本文为大家展示阿里云服务器北京地域最新的收费标准&#xff0c;以及在实际购买过程中…

JUC-线程的创建、运行与查看

创建和运行线程 Thread创建线程 Thread 创建线程方式&#xff1a;创建线程类&#xff0c;匿名内部类方式 start() 方法底层其实是给 CPU 注册当前线程&#xff0c;并且触发 run() 方法执行线程的启动必须调用 start() 方法&#xff0c;如果线程直接调用 run() 方法&#xff…

Spring day1

day01_eesy_01jdbc pom.xml<packaging>jar</packaging> <dependencies><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><!--依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-…

设计模式-接口隔离原则

基本介绍 客户端不应该依赖它不需要的接口&#xff0c;即一个类对另一个类的依赖应该建立在最小的接口上先看一张图: 类A通过接口Interface1 依赖类B&#xff0c;类C通过接口Interface1 依赖类D&#xff0c;如果接口Interface1对于类A和类C来说不是最小接口&#xff0c;那么类…

什么是多路复用器滤波器

本章将更深入地介绍多路复用器滤波器&#xff0c;以及它们如何用于各种应用中。您将了解到多路复用器如何帮助设计人员创造出更复杂的无线产品。 了解多路复用器 多路复用器是一组射频(RF)滤波器&#xff0c;它们组合在一起&#xff0c;但不会彼此加载&#xff0c;可以在输出之…

算法| ss 贪心

134.加油站455.分发饼干860.柠檬水找零2171.拿出最少数目的魔法豆 134.加油站 /*** param {number[]} gas* param {number[]} cost* return {number}*/ // 思路 // 判断: 汽油和 < 消耗和 return -1 // while循环遍历 从0开始, 计算是否有剩余 ,有就继续 没有就从下个点开…

Linux网络名称空间与网络协议栈:区别、联系与理解

在深入探讨Linux网络名称空间和网络协议栈之间的区别和联系之前&#xff0c;重要的是先明确这两个概念的定义。网络名称空间是Linux提供的一种虚拟化技术&#xff0c;允许在同一物理机器上运行的不同进程组拥有独立的网络环境&#x1f3e2;。而网络协议栈是操作系统用于实现网络…

React中的useMemo和useCallback:它们的区别及应用场景

React中的useMemo和useCallback&#xff1a;它们的区别及应用场景 1. useMemo&#xff1a;用于缓存计算结果2. useCallback&#xff1a;用于缓存函数3. 区别4. 应用场景4.1 useMemo的应用场景4.2 useCallback的应用场景 在React的Hooks API中&#xff0c;useMemo和useCallback是…

视频图像的两种表示方式YUV与RGB(3)

上篇文章介绍了YUV的采样格式&#xff0c;本篇重点介绍YUV的存储方式。接下来将用图形式给出常见YUV图像的存储方式&#xff0c;并在存储方式后面附有取样每个像素点YUV的数据方法&#xff0c;图中&#xff0c;Cb、Cr的含义等同于U、V。 YUYV为YUV422采样的存储格式中的一种&a…

探索 2024 年最佳编码自定义 GPT

如何利用GPT技术优化您的软件开发流程&#xff1f; 介绍 在快速发展的技术世界中&#xff0c;人工智能 (AI) 已成为创新的基石&#xff0c;特别是在编码和软件开发领域。 改变这一格局的人工智能工具之一是自定义 GPT。 这些先进的模型不仅彻底改变了我们的编码方式&#xff0c…

linux fixmap分析

本文基于Linux-4.19.125&#xff0c; ARM V7&#xff0c;dual core, MMU采用2级页表&#xff08;未开启LPAE&#xff09;。 1 为什么需要fixmap Linux内核启动过程中&#xff0c;经过汇编阶段后&#xff0c;mmu功能已经开启&#xff0c;后续只能通过虚拟地址来访问DDR&#x…

刷题日记——机试(3)

8.约瑟夫问题的实现 分析 创建一个队列和一个计数器&#xff0c;计数器初值为0&#xff0c;判断队列成员数是否为1&#xff0c;如果不是转3&#xff0c;是转6计数器每次1并且对k取余&#xff0c;然后将队首出队如果计数器值为0&#xff0c;那么回到2继续执行&#xff0c;如果不…

3.3.k8s搭建-rancher RKE2

目录 RKE2介绍 k8s集群搭建 搭建k8s集群 下载离线包 部署rke2-server 部署rke2-agent 部署helm 部署rancher RKE2介绍 RKE2&#xff0c;也称为 RKE Government&#xff0c;是 Rancher 的下一代 Kubernetes 发行版。 官网地址&#xff1a;Introduction | RKE2 k8s集群搭…