目录
1、批量添加数据到数据库
1.1、Python与sqltie数据连接
连接方法
import sqlite3
sqlite3.connect(db文件路径)
1.2、单条添加到数据库
第一、先建立连接
#导入sqlite3库
import sqlite3
#建立Python与user.db连接
con=sqlite3.connect("user.db")
第二、执行sql语句
#创建cursor光标对象
cur=con.cursor()
#执行sql语句方法
cur.execute("insert into user.db values (1,"张三",18,"male")")
第三、关闭光标对象,连接对象
#关闭光标对象
cur.close()
#关闭连接对象
con.close()
1.3、批量添加数据到数据库
import sqlite3,random,os
#创建连接
con=sqlite3.connect("users.db")
#创建cursor光标对象
cur=con.cursor()
#如果表存在就删除
cur.execute("drop table if exists users")
#执行sql创建表语句
cur.execute("create table users (id INTEGER primary key Autoincrement,"
"name varchar(10),age int(10),sex varchar(10))")
#sql语句,?是防止sql注入,这我也是从书中看到的
sql="insert into users values (Null,?,?,?)"
#创建了一个随机四个字母的随机名字的函数
def randomname():
s=""
for i in range(4):
str=chr(random.randint(65,90))#这是随机65到90的数字,再根据ascii码转化为字母
s=s+str
return s
try:
#批量执行插入语句
for i in range(30):
ages=random.randint(18,25)#年龄随机在18到25
sexs=random.choice(["male","female"])#性别随机男和女
cur.executemany(sql,[(randomname(),ages,sexs)])#执行sql插入语句
#提交,执行事务,用于处理大数据的操作
con.commit()
print("添加数据成功")
except BaseException as e:
#打印异常
print(e)
#执行返回操作
con.rollback()
print("添加数据失败")
finally:
#关闭光标连接
cur.close()
#关闭sql连接
con.close()
可以通过执行sql查询语句后,在使用cur.fetchall()获取结果并打印出来,打印情况如下
[(1, 'XNBM', 24, 'male'), (2, 'RLZT', 18, 'male'), (3, 'VZNY', 24, 'male'), (4, 'CZWU', 24, 'male'), (5, 'VYJD', 24, 'female'), (6, 'FGJN', 18, 'female'), (7, 'AOGL', 21, 'female'), (8, 'LOFZ', 21, 'female'), (9, 'EINJ', 23, 'female'), (10, 'VNXX', 25, 'male'), (11, 'PIAO', 22, 'female'), (12, 'JSAQ', 21, 'female'), (13, 'TCET', 22, 'female'), (14, 'FXRS', 22, 'male'), (15, 'MPCW', 23, 'female'), (16, 'BDWC', 18, 'female'), (17, 'BNGT', 25, 'male'), (18, 'MAGW', 19, 'male'), (19, 'ZYCI', 19, 'female'), (20, 'BJHV', 19, 'female'), (21, 'IQLR', 22, 'male'), (22, 'FQHN', 21, 'male'), (23, 'UVFR', 19, 'male'), (24, 'YJOM', 25, 'male'), (25, 'YDXZ', 20, 'male'), (26, 'JVFF', 23, 'male'), (27, 'YJNA', 25, 'male'), (28, 'AUVO', 23, 'female'), (29, 'YYRF', 22, 'female'), (30, 'EUFF', 19, 'female')]
2、批量创建xml
2.1、创建xml
第一、首先创建文档对象模型
import xml.dom.minidom,random
#首先创建文档对象
doc=xml.dom.minidom.Document()
第二、首先创建元素对象模型
#在创建节点或者叫元素对象
peoples=doc.createElement("Peoples")
第三、给节点添加属性
#添加people节点的属性,第一个代表属性名,第二个代表属性值
people.setAttribute("address","深圳")
第四、给节点添加文本内容
#给Name节点添加文本节点,文本节点内容为张三
name.appendChild(doc.createTextNode("张三"))
第五、关联各个节点
#这是将doc节点下面添加peoples节点
doc.appendChild(peoples)
第六、将内容写入xml
"""
indent是指第一行距离第二行的水平距离,
addindent是指除了一二行以外的其他行之间的水平距离
newl是指每一行之间的垂直距离
encoding是指编码格式
"""
f=open("people.xml","w")
doc.writexml(indent="\t", addindent="\t", newl="\n",writer=f,encoding="gbk")
完整例子代码如下
#coding=utf-8
import xml.dom.minidom,random
#首先创建文档对象
doc=xml.dom.minidom.Document()
#在创建节点或者叫元素对象
peoples=doc.createElement("Peoples")
people=doc.createElement("People")
#添加people节点的属性,第一个代表属性名,第二个代表属性值
people.setAttribute("address","深圳")
name=doc.createElement("Name")
#给Name节点添加文本节点,文本节点内容为张三
name.appendChild(doc.createTextNode("张三"))
age=doc.createElement("Age")
age.appendChild(doc.createTextNode("23"))
sex=doc.createElement("Sex")
sex.appendChild(doc.createTextNode(str(random.choice(["male","female"]))))
#将文档对象关联一级节点peoples,一级节点关联二级节点people,二级节点关联三级节点name,age,sex
doc.appendChild(peoples)
peoples.appendChild(people)
people.appendChild(name)
people.appendChild(age)
people.appendChild(sex)
#这是将内存内容写入外存xml中
"""
indent是指第一行距离第二行的水平距离,
addindent是指除了一二行以外的其他行之间的水平距离
newl是指每一行之间的垂直距离
encoding是指编码格式
"""
f=open("people.xml","w")
doc.writexml(indent="\t", addindent="\t", newl="\n",writer=f,encoding="gbk")
创建xml效果图如下
<?xml version="1.0" encoding="gbk"?>
<Peoples>
<People address="深圳">
<Name>张三</Name>
<Age>23</Age>
<Sex>male</Sex>
</People>
</Peoples>
2.2、批量创建xml
在创建xml基础上,加上循环即可
#coding=utf-8
for i in range(10):
import xml.dom.minidom, random
# 首先创建文档对象
doc = xml.dom.minidom.Document()
# 在创建节点或者叫元素对象
peoples = doc.createElement("Peoples")
for j in range(10):
people = doc.createElement("People")
name=doc.createElement("Name")
#给Name节点添加文本节点,文本节点内容为张三
name.appendChild(doc.createTextNode(f"{random.randint(2,5)}"))
age=doc.createElement("Age")
age.appendChild(doc.createTextNode(f"{random.randint(18,24)}"))
sex=doc.createElement("Sex")
sex.appendChild(doc.createTextNode(str(random.choice(["male","female"]))))
#将文档对象关联一级节点peoples,一级节点关联二级节点people,二级节点关联三级节点name,age,sex
people.appendChild(name)
people.appendChild(age)
people.appendChild(sex)
peoples.appendChild(people)
doc.appendChild(peoples)
#这是将内存内容写入外存xml中
"""
indent是指第一行距离第二行的水平距离,
addindent是指除了一二行以外的其他行之间的水平距离
newl是指每一行之间的垂直距离
encoding是指编码格式
"""
f=open(f"people{i}.xml","w")
doc.writexml(indent="\t", addindent="\t", newl="\n",writer=f,encoding="gbk")
给你们看下单个xml文件效果,如下
<?xml version="1.0" encoding="gbk"?>
<Peoples>
<People>
<Name>3</Name>
<Age>21</Age>
<Sex>male</Sex>
</People>
<People>
<Name>3</Name>
<Age>21</Age>
<Sex>male</Sex>
</People>
<People>
<Name>3</Name>
<Age>18</Age>
<Sex>female</Sex>
</People>
<People>
<Name>3</Name>
<Age>22</Age>
<Sex>female</Sex>
</People>
<People>
<Name>2</Name>
<Age>20</Age>
<Sex>female</Sex>
</People>
<People>
<Name>5</Name>
<Age>24</Age>
<Sex>female</Sex>
</People>
<People>
<Name>2</Name>
<Age>18</Age>
<Sex>male</Sex>
</People>
<People>
<Name>3</Name>
<Age>18</Age>
<Sex>male</Sex>
</People>
<People>
<Name>2</Name>
<Age>21</Age>
<Sex>female</Sex>
</People>
<People>
<Name>2</Name>
<Age>20</Age>
<Sex>male</Sex>
</People>
</Peoples>