Python 数据库格式化输出文档

Posted 善斋书屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 数据库格式化输出文档相关的知识,希望对你有一定的参考价值。

  • 问题

    如果文案格式是统一的,是否可以通过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

以上是关于Python 数据库格式化输出文档的主要内容,如果未能解决你的问题,请参考以下文章

Python代码实现Object文档查看

怎么把python输出为word

python颜色压缩的结果颜色比保存颜色深

Python3.2官方文档翻译--输出格式化

Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式

学习笔记:python3,代码片段(2017)