关于python:Python-数据库格式化输出文档

28次阅读

共计 1405 个字符,预计需要花费 4 分钟才能阅读完成。

  • 问题

    如果文案格局是对立的,是否能够通过 Python 格式化输入 doc/md 的文档?

    能用代码搞定的,尽力不手工

  • 思路

    首先,数据曾经录入库,须要 python 能读取数据库,可应用 mysql-connector

    其次,格式化输入的文档,必定须要文件读写操作,需应用 os

    接着,思考到各大平台少数反对 markdown 格局,优先输入 md 格局文档。若输入 doc,需应用 docx

    补充,python 一键执行,分页数据操作,接管内部参数,需应用 sys

  • 编码

    • 分页获取数据库内容
    import mysql.connector
    
    # 数据库中 page 页数据
    def fetch_data_from_db(page):
        cmd = 'select * from xxx order by id limit' + str(page * 50) + ',' + str(50)
        conn = mysql.connector.connect(user='xxx', password='xxx', database='xxx')
        cursor = conn.cursor()
        cursor.execute(cmd)
        values = cursor.fetchall()
        conn.commit()
        cursor.close()
        conn.close()  
        return values 
    • 格式化输入 md 文档,md 中增加表格款式
    import os
    # python 输入表格
    def export_format_md(page, books):
        fileName = '善斋书屋第' + str(page) + '期.md'
        # 文件追加写入
        fd = open(fileName, 'a')
        fd.write('书目: \n<br>\n\n')
        fd.write('| 索引 | 作者 | 书名 |\n')
        fd.write('|:-|:-|:-|\n')
        for book in books:
            fd.write('|' + "{0:04d}".format(book[0]) + '|' + book[2] + '|' + book[1] + '\n')
    • 格局话输入 doc 文档
    from docx import Document
    from docx.shared import Cm
    
    def export_format_md(page, books):
        fileName = '善斋书屋第' + str(page) + '期.docx'
        document = Document()
        table = document.add_table(rows = 51, cols = 3) # 设置行列数
        table.cell(0, 0).text = "索引"
        table.cell(0, 1).text = "作者"
        table.cell(0, 2).text  = "书名"
        for index, book in enumerate(books):
            table.cell(index+1, 0).text = "{0:05d}".format(book[0])
            table.cell(index+1, 1).text = book[2]
            table.cell(index+1, 2).text = book[1]
        document.save(fileName)
    • 内部传参获取
    if __name__ == '__main__':
        args = sys.argv
        if len(args) == 2:
            # 获取分页
            page = args[1] 
            books = fetch_data_from_db(page)
            export_format_md(page, books)
    • 一键执行
    python3 xxxx.py 0
  • Over

正文完
 0