美文网首页
Python项目:把数据以图片的形式发送到微信群中

Python项目:把数据以图片的形式发送到微信群中

作者: 成鹏9 | 来源:发表于2017-07-14 16:07 被阅读1334次

    背景

    Boss要出一份数据,需要每天定时定点发送到微信干部群里面。之前我都是从后台导出数据,然后在Excel的基础表里面粘贴导出的数据,接着打开展示表,从表格中把数据复制出来,一张一张发到微信群中。这样就有这么几个缺点:

    1、导出数据繁琐,如果从8个数据表中分别导出8份数据,每次都需要手动选择日期和条件,然后导出数据。

    2、Excel在处理数据较大且公式比较多的原始数据时,表现不是很好,很卡。

    3、每天花在这份数据上的时间过多,影响其他的分析工作。

    于是我决定用Python把数据处理过程简化,因为任何因为数据处理而非分析造成的加班,都是无效加班。

    于是我把我的工作流程拆解分为5个部分,然后分别对每个部分进行程序编写:

    1、从系统中导出数据

    2、从导出的数据中找出需求数据

    3、把数据填写到表格中

    4、把表格复制为图片

    5、图片发送到微信群中

    6、发送完之后用短信提醒我

    从系统中导出数据

    从系统中导出数据,我是利用Python request模块把我的cookie和我的表单信息post到系统当中,得到我要的下载链接,然后用pandas直接读取这个Excel下载链接,生成一个DataFrame。我是在征求过了系统研发同意之后才写的爬虫,如果各位谁想去爬取公司的数据,一定要去征求同意,以免造成不必要的问题。因涉及公司的信息,我就不放出我写的代码了。至此我得到了系统中的数据,并且已经把数据变成了易处理的DataFrame格式。

    略过:)

    从导出的数据中找出需求数据

    我们已经从系统中找出原始数据,那么现在就需要对数据进行处理,这里就需要利用pandas的去处理数据。我这里涉及的操作有:

    1、匹配数据。比如说系统中只有城市数据,但是我需要对省份进行筛选,于是我需要用原始数据和另一个数据进行匹配,相当于SQL中的left join。

    2、筛选数据。筛选出广东省出发的所有出境线路的订单。

    3、分类汇总。根据部门进行分类汇总,包括营收和交易额。

    数据处理关系到结果数据的准确性 处理dataframe

    map_province和map_depart是从系统中读取的两个映射表,一个城市-省份映射表,用于匹配二是目的地城市-部门映射表,用于匹配部门。

    把数据填写到表格中

    已经得到了所需要的数据了,那么就是看用什么作为载体,去发送数据。我还是沿用老习惯,用Python在Excel表格中填写查询到的数据。处理Excel的Python库有很多,有xlrd、xlwt、xluntils和pyExcelerator等库,但是我偏向于win32com,用这个库去操作Excel,基本上是跟VBA语法一致。

    我需要填写的数据(简单版) 填写表格

    函数fillData的作用是把保存在列表中的数据,一次填写在表格之中,他的四个参数表示:工作表、开始的位置、要填充的列表和需要填写的数据。dealExcel函数的作用是用来把数据填充进去。

    把图片复制为图片

    这个就很简单,先把复制的表格转化成图片,然后把图片复制到粘贴板上面,再利用PIL读取粘贴板上面的图片,接着保存到特定的文件夹中(存档)。

    数据复制为图片,存在本地作为存档

    图片发送到微信群中

    有了本地图片之后,可以利用itchat把数据发送到特定的微信群中。

    把数据发送到群里面

    这个有很大的扩展性,你可以把你所有的程序都包含在这个函数里面,当你的微信机器人得到你的暗语,他就会自己运行程序,然后发出数据。也可以加一个while循环,每天隔一段时间发数据。

    但是他的缺点也有很多,比如说对中文不友好、要微信扫码登录和偶尔断掉服务器,需要重新登录等等。但是不管怎样,如果你的工作沟通工具是微信,那它肯定是你的一大助力。

    发完数据之后用短信提醒我

    这个只是一个可选项,用来实时知道自己的数据是否发送。我用的twilio服务,只需要写几行代码就能做到发送信息给你的手机当中。

    SMS服务的使用


    最后成果

    总结

    任何关于数据处理的过程,很多都可以用程序去解决。我是一个比较“懒”的人,机械的工作当然是用机器去做,把时间留着去做一些更有意思的事情,比如分析数据。

    相关文章

      网友评论

          本文标题:Python项目:把数据以图片的形式发送到微信群中

          本文链接:https://www.haomeiwen.com/subject/fcxvxxtx.html