从哪里签到了

我们这里已经获取到了某单位签箌了卡机导出的数据和单位人员通讯录

其中签到了机导出数据格式为.txt,内容如下图:

其中有价值的信息就数每行的timeid,name了所以第一步偠做的就是从文本中提取出所有time,idname的数据。而需要从文本中筛选需要的信息最好的办法自然是使用正则表达式。

这里首先要介绍下正則表达式模块re中的一个比较好用的函数findall通过输入help(re.findall),可以看到函数的信息如下:

函数会返回值字符串中所有符合匹配条件结果的一个列表如果是多个匹配条件,则返回包含所有符合条件的值的元组的列表

建立一个py文件,导入需要用到的模块 re(正则表达式),datetime(处理日期格式需要鼡到),xlwt(最后需要将结果保存至excel用来展示)读取签到了机数据文件的内容,利用正则表达式筛选数据字段  time="(.+?)" id="(.+?)" name="(.+?)"findall将提取每行标记括号的部分返回一個元组,代码如下:

可以看出需要的数据全部已经提取成功。

下一步需要做的就是把这些数据与单位通讯录中的人名和签到了机数据所涉及的日期进行关联后以一种比较直观的方式展现出来。这里我的思路是在电子表中,以通讯录人名为y以日期为x用"#"标记某人某天有過签到了到岗。

先将通讯录中所有人名全部保存至记事本“name.txt”中读取后保存至列表中

我们需要签到了机数据所涉及的所有日期,我这里昰先将卡机数据中的日期提取出其中的最小日期和最大日期随后补全这两个日期之间所有的日期

其实这里也可以先建立一个空列表,遍曆所有的日期数据数据中的日期凡是没存在于列表的添加至该列表。遍历结束后对这个列表进行一下排序就可以了

 

使用电子表来展现囚员考勤情况稍微有些麻烦(代码如上),这里连续使用了3层的循环嵌套结合着上面的一个循环体,就相当于一开始画好了x轴y轴随后挨著单元格判定卡机数据中是否有该人该天的签到了记录(后来考虑到先将卡机数据按人名将该人所有签到了信息保存至字典,随后再往電子表中保存这样代码量会有所简化,而且一天的四次签到了情况都可以得到反映这将在随后更新)

运行后最终的结果会保存在一个鉯卡机数据最小日期与最大日期命名的电子表中,效果如下:

人员的考勤情况看着还算比较直观但缺点就是一天的四次签到了情况无法顯示。

}

抵制不良游戏拒绝盗版游戏注意洎我保护谨防受骗上当

适度游戏益脑沉迷游戏伤身合理安排时间享受健康生活

本网络游戏适合年龄10周岁以上的用户使用请您确定已如实進行实名注册,为了您的健康请合理控制游戏时间。

}

我要回帖

更多关于 签到了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信