Python Show-Me-the-Code 第 0020题 统计通话时长
第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 –> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年10月01日~2014年10月31日通话详单.xls 文件。写代码,对每月通话时间做个统计。
思路:
我的手机号是移动的,所以我选的是导出移动手机号某月的详单。打开表格文件发现每行的格式是:
序号 通话地 通话类型 对方号码 开始时间 通话时长 移动话费 长途话费
它的通话类型是包括套餐,主叫,被叫,上网流量之类的,通过这个我们可以知道那些行是属于通话的时间的。它的通话时长记录格式是hh:mm:ss,在这我把该字符串读出来并使用strptime解析它。Python time.strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。语法:time.strptime(string[, format]),其string为时间字符串,format为格式化字符串。逐行扫描表格,把每次的通话时间累加。
代码:
0020.统计通话时长.py
#!/usr/bin/env python
#coding: utf-8
import xlrd
import time# 存放文件的路径
filepath = '/home/bill/Desktop/list(201504).xls'def run():# 打开表格xls = xlrd.open_workbook(filepath)sheet = xls.sheet_by_index(0)initiative_call = 0passtive_call = 0# 遍历表格,查到类型为被叫或主叫的行,记录通话时长for i in range(3, sheet.nrows):rv = sheet.row_values(i)if rv[2] == u'被叫':struct_time = time.strptime(rv[5], "%H:%M:%S")passtive_call += struct_time.tm_hour * 3600 + struct_time.tm_min * 60 + struct_time.tm_secif rv[2] == u'主叫':struct_time = time.strptime(rv[5], "%H:%M:%S")initiative_call += struct_time.tm_hour * 3600 + struct_time.tm_min * 60 + struct_time.tm_secprint '主叫时长:%d分钟' % (initiative_call/60)print '被叫时长:%d分钟' % (passtive_call/60)print '总通话时长:%d分钟' % ((passtive_call+initiative_call)/60)if __name__ =="__main__":run()
Python Show-Me-the-Code 第 0020题 统计通话时长相关推荐
- 清华oj--每天一题-通话时长
清华oj--每天一题-通话时长 通话时长 通话时长 tips:当第二个小于第一个时间要判断,加一天就好.不考虑的活没过,后来过了(下图) 下面的代码是对的,100/100,已经考虑到了,不用担心 // ...
- Python计算代码之间运行时间(运行间隔时间、时长)
Python3.8以下使用time.clock() 通过代码统计 导入time库:import time 代码开始前获取开始时间:time_start = time.clock() 代码结束后获取结束 ...
- 第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,
第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 --> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年1 ...
- Python生成CSV文件模拟某小区用户手机通话记录
好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...
- python快速入门【六】----真题测试
python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...
- python中的条件判断稀硫酸_大学mooc2020用Python玩转数据期末考试查题公众号答案...
大学mooc2020用Python玩转数据期末考试查题公众号答案 更多相关问题 下列表述或叙述中,正确的是().A.1 mol氢B.3 mol H2C.2 mol氢分子D.1 mol H 相同质量的钠 ...
- 南京工业大学python考试期末题库_大学慕课用Python玩转数据期末考试查题公众号答案...
大学慕课用Python玩转数据期末考试查题公众号答案 更多相关问题 雪松的树形为 (5.0分) - Do you think I can borrow your bike for a few hour ...
- python学习之给小学生数学运算题(混合加减乘除法)
python代码随机生成加减乘除混合运算题,给熊孩子练习很不错哦!!! 寒假在家不能让他闲着,熊孩子的计算能力一如既往的差,学渣老爹继续根据学习进度自动生成寒假作业.不多说了,直接上代码,本着能用就好 ...
- 第十三届蓝桥杯省赛 python B组复盘(三道代码题全AC居然省一了)
第十三届蓝桥杯省赛 python B组复盘(三道代码题全AC居然省一了)
最新文章
- OpenCV(六)形态学操作1--基础:膨胀与腐蚀(回调函数)
- bzoj1227: [SDOI2009]虔诚的墓主人(树状数组,组合数)
- 【P2774】方格取数问题(贪心+最大流,洛谷)
- 【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )
- 牛客每日一题3.31 城市网络 树上倍增
- linq中let关键字学习
- acm的ubuntu (ubuntu16.04 安装指南,chrome安装,vim配置,git设置和github,装QQ)
- Java项目导入eclipse后项目出现JRE System Library [JavaSE-1.8](unbound)
- 同事1000行又臭又长 的类!被我用IDEA几分钟重构!真香!
- mysql压测宕机_MySQL压测时Linux中断异常飚高,原来是因为...
- 图片版坦克大战源代码之坦克类(二)
- CTO能力知识地图正式发布
- Python-玩转数据-Scrapy中Spiders
- 【beef工具-01】神器beef的安装与简介
- 美国硕士计算机机械专业排名,工科“三巨头”之一-机械工程的美国硕士申请全解答...
- console,控制台也能玩出花样(console操作大全)
- 3d打印技术改变生活的影响
- 选型笔记之二极管选型
- Unity-简单的坦克大战的一些思路
- idea运行报路径不存在