将一个字典结构的数据通过python生成html,并将html保存成图片
css样式文件
`table {
font-family: Arial, sans-serif;
border-collapse: collapse;
width: 100%;
margin-bottom: 20px;
}
th {
font-weight: bold;
background-color: #F5DEB3;
color: #8B0000;
text-align: center;
border: 1px solid black;
padding: 10px;
}
td, th {
border: 1px solid #ddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}`
python代码
`
import os
import imgkit
# 定义一个字典
data = {
'Name': ['John', 'Sara', 'Peter', 'Mary'],
'Age': [24, 31, 45, 19],
'City': ['New York', 'Paris', 'London', 'Tokyo']
}
# 构建HTML代码
html1 = '<html><head><link rel="stylesheet" type="text/css" href="style.css"></head><body>'
html1 += '<table>'
html1 += '<thead><tr><th>Name</th><th>Age</th><th>City</th></tr></thead>'
html1 += '<tbody>'
for i in range(len(data['Name'])):
html1 += f'<tr><td>{data["Name"][i]}</td><td>{data["Age"][i]}</td><td>{data["City"][i]}</td></tr>'
html1 += '</tbody>'
html1 += '</table>'
html1 += '</body></html>'
# 将HTML代码保存到文件中
with open('table1.html', 'w') as f:
f.write(html1)
# 拷贝CSS文件到当前目录
os.system('cp style.css ./')
# 使用imgkit生成图片
imgkit.from_file('table1.html', 'table.jpg')
# 显示图片
os.system('open table.jpg')
在这个示例程序中,我们首先定义了一个字典来存储数据。然后,我们使用string模块构建HTML代码,其中我们使用for循环遍历字典的键值对,并将其添加到HTML表格中。我们还通过在HTML head标签中添加link标签来引用外部CSS文件,并在HTML代码中使用对应的CSS类。最后,我们将HTML代码保存到文件中,并使用操作系统命令来将CSS文件复制到当前目录中。
接着,我们使用imgkit库的from_file()函数来生成图片。此函数需要两个参数:HTML文件的路径和要保存的图片文件的路径。在这个示例程序中,我们将HTML文件的路径设置为table.html,将图片文件的路径设置为table.jpg。
请注意,在使用imgkit库之前,你需要安装wkhtmltopdf工具,并将其添加到系统环境变量中。可以通过以下命令在Ubuntu系统中安装:
sudo apt-get install wkhtmltopdf
最后,我们使用操作系统命令打开生成的图片文件。如果你想使用不同的图片格式,可以更改文件扩展名。例如,你可以将table.jpg更改为table.png以生成PNG格式的图片。
转载自:https://juejin.cn/post/7223314301972086844