最近,我需要每天写报告,汇报系统的运行情况。其实就是从一个很大的系统里面去拿各种表格,csv格式,然后汇总,以邮件的形式发出来。我查了一些资料,发现用pandas+lxml生成html,然后再复制到邮件里是比较好的一种方案。

Pandas是python常用的处理数据的库,可以读取csv,转换成各种格式,比如html。

lxml是python常用的处理XML的库,也处理HTML,因为HTML基本上就是XML。

我需要所有的表格在一个文件里面显示,然后我直接复制一下就行了。这时,我想到了把csv转成HTML格式的表格,然后把几张HTML表格放到一个HTML文件里。csv转html,我选择pandas。而整合这些html表格,我用lxml。

首先,我们用lxml新建一个html对象,这个对象的类型是lxml的Element。我们把html对象里面的body取出来,因为表格会添加到body中。

from io import StringIO
import pandas as pd
from lxml import etreehtml_str = """
<html>
<head>
<title>HTML report</title>
</head>
<body></body>
</html>
"""# 这里换成etree.XML也是一样的。
html = etree.HTML(html_str)
body = html.find("body")

接着,就往body中添加表格。

# 添加一个表头
h1 = etree.HTML("<h1>测试报告</h1>")
body.append(h1)test_result_csv = """
case,expected,actual,result
case 1,43545,43545,pass
case 2,12,11,fail
case 3,1234,1234,pass
"""df = pd.read_csv(StringIO(test_result_csv))
# 把pandas对象转换成html字符串
html_table_str = df.to_html()
html_table = etree.HTML(html_table_str)
# 把表格添加到html body
body.append(html_table)

最后,存盘。

with open("report.html", "wb") as f:f.write(etree.tostring(html, pretty_print=True))f.flush()f.close()

除了csv,pandas还可以打开各种表格,包括数据库里的表格。基本上来说,pandas+lxml就可以生成各种基于数据的HTML报表。虽然每天写报表也就10分钟,但是把这项工作自动化了以后,才有时间去看书,学习,提高自己。每个人的日常工作中,都有很多重复性的任务。只要这个重复性的任务是在电脑上的,都能用python自动化之。

用pandas+lxml生成html报告相关推荐

  1. 【Python】Pandas profiling 生成报告并部署的一站式解决方案

    Pandas 库功能非常强大,特别有助于数据分析与处理,并为几乎所有操作提供了完整的解决方案.一种常见的Pandas函数是pandas describe.它向用户提供数据集所有特征的描述性统计摘要,尽 ...

  2. Pandas profiling 生成报告并部署的一站式解决方案

    Pandas 库功能非常强大,特别有助于数据分析与处理,并为几乎所有操作提供了完整的解决方案.一种常见的Pandas函数是pandas describe.它向用户提供数据集所有特征的描述性统计摘要,尽 ...

  3. 用pandas_profiling生成数据报告遇到的各种坑

    pandas_profiling可以实现自动的EDA,一键生成数据报告. 常见问题: 1.安装pandas_profiling报错. 2.内存和硬盘空间不够. 我的当前运行环境是Anaconda3-3 ...

  4. Python办公自动化|一键生成数据分析报告

    前两天逛知乎的时候看到这样一个提问,Python自动化办公能做那些有趣或者有用的事情? 看了一下这个提问,我想这可能是很多职场人面临的困惑,想把Python用到工作中来提升效率,却不知如何下手?Pyt ...

  5. Python 基于 Prometheus 数据生成巡检报告

    设计思路 1.基于Prometheus 开放接口获取数据(node_exporte/windows_exporter) 2.存放数据至mysql数据库 3.基于jinja2 编写模板生成巡检报告.ht ...

  6. 神器Jinja2,用 Python 快速生成分析报告!

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...

  7. 用Python自动生成数据分析报告!

    来源:林骥 你好,我是林骥. 很多时候,我们需要做一些重复性的工作,比如说,每个月制作类似的数据分析报告,整个框架是基本固定的,此时,我们可以采用 Python 来自动生成数据分析报告,把更多的时间和 ...

  8. python使用sklearn中的make_classification函数生成分类模型(classification)需要的仿真数据、使用pandas查看生成数据的特征数据、目标数据

    python使用sklearn中的make_classification函数生成分类模型(classification)需要的仿真数据.使用pandas查看生成数据的特征数据(features).目标 ...

  9. python使用fpdf生成数据报告pdf文件

    python使用fpdf生成数据报告pdf文件 目录 python使用fpdf生成数据报告pdf文件 # 报告生成整体代码

最新文章

  1. linux基础-延时命令:sleep
  2. jquery的实时触发事件(textarea实时获取中文个数)
  3. 电动力学每日一题 2021/10/10
  4. UA PHYS515A 电磁理论V 电磁波与辐射3 偏振
  5. mysql监控sql
  6. 麒麟linux百度云,百度网盘 Linux 版发布,搭配优麒麟运行更完美!
  7. 真机调试及上线简略流程
  8. java设置时间_怎么用java设置系统时间?
  9. 智能优化算法:类电磁机制算法 - 附代码
  10. Ubuntu 设置 samba共享文件夹
  11. 新浪股权分散是把双刃剑
  12. launch尺寸 包含iPhone X
  13. 安卓动画系统 - 安卓R
  14. 计算机教师招聘笔试总结
  15. MATLAB和Python求解非线性常微分方程
  16. 不高兴的津津、c++练习
  17. 使用阿里云接口实现全国天气查询
  18. 许奔创新社-第18问:静默头脑风暴怎么玩?
  19. 火一把就死的现象级产品:疯狂猜图与百度魔图
  20. nuget 部署 (一) 环境搭建

热门文章

  1. android的颜色渐变动画效果图,android – 渐变色动画
  2. 如何塑造社群荣誉感与归属感
  3. Urlparse模块
  4. 实践分享:将微信小游戏运行到自有App中(iOS篇)
  5. 安装并运行apk时出现恼人的Error: Activity class {xxx/xxx.MainActivity} does not exist.
  6. 特斯拉「红利」结束?一场新的智能普及+升级战上演
  7. CPU-IO-网络-内核参数调优
  8. eMMC Spec —— 1.eMMC前言介绍
  9. BugKuCTF-杂项-论剑
  10. 为什么“赢”字这么难写?