- 问题
如果文案格局是对立的,是否能够通过 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