Python數(shù)據(jù)庫格式化輸出文檔的思路與方法
問題
如果文案格式是統(tǒng)一的,是否可以通過Python格式化輸出doc/md的文檔?
能用代碼搞定的,盡力不手工
思路
首先,數(shù)據(jù)已經(jīng)錄入庫,需要python能讀取數(shù)據(jù)庫,可使用mysql-connector
其次,格式化輸出的文檔,肯定需要文件讀寫操作,需使用os
接著,考慮到各大平臺多數(shù)支持markdown格式,優(yōu)先輸出md格式文檔。若輸出doc,需使用docx
補(bǔ)充,python一鍵執(zhí)行,分頁數(shù)據(jù)操作,接收外部參數(shù),需使用sys
編碼
分頁獲取數(shù)據(jù)庫內(nèi)容
import mysql.connector # 數(shù)據(jù)庫中page頁數(shù)據(jù) 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 mysql.connector # 數(shù)據(jù)庫中page頁數(shù)據(jù) 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
格式話輸出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) # 設(shè)置行列數(shù)
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)
一鍵執(zhí)行
python3 xxxx.py 0
總結(jié)
到此這篇關(guān)于Python數(shù)據(jù)庫格式化輸出文檔的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)庫格式化輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python os模塊中的isfile()和isdir()函數(shù)均返回false問題解決方法
這篇文章主要介紹了Python os模塊中的isfile()和isdir()函數(shù)均返回false問題解決方法,返回false的原因是路徑使用了相對路徑,使用絕對路徑就可以解決這個問題,需要的朋友可以參考下2015-02-02
python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)
這篇文章主要介紹了python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03
python實(shí)現(xiàn)音樂下載的統(tǒng)計
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)音樂下載的統(tǒng)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Python實(shí)現(xiàn)24點(diǎn)小游戲
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)24點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
matplotlib之pyplot模塊之標(biāo)題(title()和suptitle())
這篇文章主要介紹了matplotlib之pyplot模塊之標(biāo)題(title()和suptitle()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

