• 问题

    如果文案格局是对立的,是否能够通过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 Documentfrom docx.shared import Cmdef 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