日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Markdown花样表格一键生成-基于Python

發(fā)布時間:2024/1/8 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Markdown花样表格一键生成-基于Python 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
代碼生成的表格示例:
內(nèi)容 說明
Fry 胡萊
Bender 班德
Morty 莫蒂
Rick 瑞克
Bojackhorseman 波杰克
Jerry loser
<table> <tr><td align=center><font color=blue size=4 face=YaHei>內(nèi)容</font></td><td bgcolor=#f0f0f0 align=left><font color=orange size=4 face=楷體>說明</font></td> </tr> <tr><td align=center><font color=blue size=4 face=YaHei>Fry</font></td><td bgcolor=lightpink align=left><font color=hotpink size=4 face=楷體>胡萊</font></td> </tr> <tr><td align=center><font color=blue size=4 face=YaHei>Bender</font></td><td bgcolor=#f0f0f0 align=left><font color=orange size=4 face=楷體>班德</font></td> </tr> <tr><td align=center><font color=blue size=4 face=YaHei>Morty</font></td><td bgcolor=lightpink align=left><font color=hotpink size=4 face=楷體>莫蒂</font></td> </tr> <tr><td align=center><font color=blue size=4 face=YaHei>Rick</font></td><td bgcolor=#f0f0f0 align=left><font color=orange size=4 face=楷體>瑞克</font></td> </tr> <tr><td align=center><font color=blue size=4 face=YaHei>Bojackhorseman</font></td><td bgcolor=lightpink align=left><font color=hotpink size=4 face=楷體>波杰克</font></td> </tr> <tr><td align=center><font color=blue size=4 face=YaHei>Jerry</font></td><td bgcolor=#f0f0f0 align=left><font color=orange size=4 face=楷體>loser</font></td> </tr> </table>

搞清楚了結(jié)構(gòu),就可以編寫一個模板,然后直接傳參、循環(huán)就可。

參數(shù)與模板(單行):

line1 = {# 該行表格第一列內(nèi)容'name': self.name[0],# 該行表格第二列內(nèi)容'mean': self.mean[0],# 兩列內(nèi)容的對齊方式列表,如['center', 'center']# 對齊方式 left right center'align': self.align,# 兩列字體的顏色列表 ['red', 'blue']'fcolor': self.fcolors1,# 兩列字體的大小列表 [4, 5]'fsize': self.size,# 兩列內(nèi)容的字體列表 ['楷體', '宋體']'face': self.face,# 第二列的背景顏色 'red'/'#f0f0f0''bg': self.bg{0], } f'''<tr><td align={line1['align'][0]}><font color={line1['fcolor'][0]} size={line1['fsize'][0]} face={line1['face'][0]}>{line1['name']}</font></td><td bgcolor={line1['bg']} align={line1['align'][1]}><font color={line1['fcolor'][1]} size={line1['fsize'][1]} face={line1['face'][1]}>{line1['mean']}</font></td> </tr>'''

從文件導(dǎo)入數(shù)據(jù):

做出如下約定:

  • 文件每一行僅寫入兩個數(shù)據(jù)(對應(yīng)表格的每一行的兩列)

  • 每一行的兩個數(shù)據(jù)由一個空格隔開。

對應(yīng)函數(shù):

def getdata(self, file):with open(file, 'r', encoding='utf8') as f:for line in f.readlines():dats = line.rstrip('\n').split(' ')self.name.append(dats[0])self.mean.append(dats[-1])f.close()

細(xì)節(jié)

  • 每次生成兩行,于是就要考慮總的數(shù)據(jù)量是不是偶數(shù)行不是的話添加一個空數(shù)據(jù)。
  • 同時打開了打印與存儲到文件的功能。也就是說,最終生成的結(jié)果會通過print打印出來,也會存儲到指定的html文件中(方便復(fù)制粘貼與修改
  • 可以通過修參數(shù)調(diào)整達(dá)到自由修改配色、字體、對齊

總代碼:

class gen2l():def __init__(self, file):self.name = []self.mean = []self.html = ''self.getdata(file)if len(self.name) % 2:self.name.append('')self.mean.append('')center, left, right = 'center', 'left', 'right'# 兩列的對齊方式self.align = [center, left]# 第一行兩列的字體顏色self.fcolors1 = ['blue', 'orange']# 第二行兩列的字體顏色self.fcolors2 = ['blue', 'hotpink']# 兩列字體大小self.size = [4, 4]# 兩列的字體self.face = ['YaHei', '楷體']# 兩行的背景顏色self.bg = ['snow', '#f0f0f0']def getdata(self, file):with open(file, 'r', encoding='utf8') as f:for line in f.readlines():dats = line.rstrip('\n').split(' ')self.name.append(dats[0])self.mean.append(dats[-1])f.close()def doit(self):print('<table>')while self.name[0]:line1 = {'name': self.name[0],'mean': self.mean[0],'align': self.align,'fcolor': self.fcolors1,'fsize': self.size,'face': self.face,'bg': self.bg[0],}line2 = {'name': self.name[1],'mean': self.mean[1],'align': self.align,'fcolor': self.fcolors2,'fsize': self.size,'face': self.face,'bg': self.bg[1],}st1 = f'''<tr><td align={line1['align'][0]}><font color={line1['fcolor'][0]} size={line1['fsize'][0]} face={line1['face'][0]}>{line1['name']}</font></td><td bgcolor={line1['bg']} align={line1['align'][1]}><font color={line1['fcolor'][1]} size={line1['fsize'][1]} face={line1['face'][1]}>{line1['mean']}</font></td> </tr>'''st2 = f'''<tr><td align={line2['align'][0]}><font color={line2['fcolor'][0]} size={line2['fsize'][0]} face={line2['face'][0]}>{line2['name']}</font></td><td bgcolor={line2['bg']} align={line2['align'][1]}><font color={line2['fcolor'][1]} size={line2['fsize'][1]} face={line2['face'][1]}>{line2['mean']}</font></td> </tr>'''st = st1 + '\n' + st2if not self.name[1]:st = st1self.html += st + '\n'print(st)if len(self.name) == 2:breakdel self.name[:2]del self.mean[:2]print('</table>')# 結(jié)果保存到這個文件with open('out.html', 'w', encoding='utf8') as f:f.write(f'<table>\n{self.html}\n</table>')f.close()def main():# 數(shù)據(jù)存于這個文件file = 'data.txt'gen = gen2l(file)center, left, right = 'center', 'left', 'right'# 自由修改配色、字體、對齊# 兩列的對齊方式gen.align = [center, left]# 第一行兩列的字體顏色gen.fcolors1 = ['blue', 'orange']# 第二行兩列的字體顏色gen.fcolors2 = ['blue', 'hotpink']# 兩列字體大小gen.size = [4, 4]# 兩列的字體gen.face = ['YaHei', '楷體']# 兩行的背景顏色gen.bg = ['snow', '#f0f0f0']gen.doit()main()

如果,有時間,打算編寫一個復(fù)雜表格代碼生成腳本【就是有復(fù)雜合并、多列、配色更花哨、甚至自動配色(好看那種),或許再加上點(diǎn)丑陋的GUI


總結(jié)

以上是生活随笔為你收集整理的Markdown花样表格一键生成-基于Python的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。