说明
在此记录如何将word里的题存入数据库
代码
import pymysql
import random
import docx
# 导入数据
path = 'test2.docx'
file = docx.Document(path)
# 连接数据库
db = pymysql.connect(host="localhost", user="root", password="123456", db="tiku", port=3306)
cur = db.cursor()
# word的段落
text = file.paragraphs
# word的段数
para = len(file.paragraphs)
# 要导入数据库的题数
times = int(para/6)
tag = 0
while True:
while True:
try:
# 生成随机数
num = random.randint(100000, 999999)
# 生成sql语句 查询数据库里是否已存在相同的id
sql = "select * from python_question where id = %d" % (num)
cur.execute(sql) # 执行sql语句
results = cur.fetchall() # 获取查询的所有记录
if results:
# id已存在,则跳过本次
continue
else:
# 随机数不存在则作为Id
question = text[tag*6+0].text # 题目
A = text[tag*6+1].text #选项
B = text[tag*6+2].text
C = text[tag*6+3].text
D = text[tag*6+4].text
answer = text[tag*6+5].text #答案选项
tag = tag + 1
sql_insert = "insert into python_question(question, A, B, C, D, id, answer) " \
"values ('%s', '%s', '%s', '%s', '%s', %d, '%c')" % (question, A, B, C, D, num, answer)
try:
cur.execute(sql_insert)
# 提交'
db.commit()
except Exception as e:
# 错误回滚
db.rollback()
except Exception as e:
raise e
# 题目存完 退出循环
if tag == times:
break
# 题目存完 退出循环
if tag == times:
break
# 程序完 关闭数据库
db.close()