Python实现将word的数据存入数据库

说明

在此记录如何将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()
要解析Word文档并将其内容存储到MySQL中,可以使用Pythonpython-docx库和pymysql库。以下是一个简单的示例代码: ```python import docx import pymysql # 连接MySQL数据库 db = pymysql.connect(host='localhost', user='root', password='password', db='test', charset='utf8') # 打开Word文档 doc = docx.Document('example.docx') # 遍历文档中的段落和标题 for para in doc.paragraphs: # 如果是标题 if para.style.name.startswith('Heading'): # 将标题和内容存储到MySQL中 with db.cursor() as cursor: sql = "INSERT INTO documents (title, content) VALUES (%s, %s)" cursor.execute(sql, (para.text, '')) db.commit() current_title = para.text # 如果是正文 else: # 将内容添加到之前的标题行中,并存储到MySQL中 with db.cursor() as cursor: sql = "UPDATE documents SET content = CONCAT(content, %s) WHERE title = %s" cursor.execute(sql, (para.text, current_title)) db.commit() # 关闭数据库连接 db.close() ``` 在上面的示例代码中,我们首先使用pymysql库连接到MySQL数据库。然后,我们使用python-docx库打开Word文档,并遍历文档中的段落和标题。如果我们遇到一个标题,我们将其作为新文档的标题,并将其标题和空内容插入到MySQL数据库中。如果我们遇到正文,我们将其添加到之前的标题行中,并将其存储到MySQL数据库中。 请注意,这只是一个简单示例,实际情况可能更加复杂,需要根据具体情况进行修改。例如,您可能需要处理表格、图片等其他类型的内容,并根据需要将它们存储到数据库中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值