第 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题 统计通话时长相关推荐

  1. 清华oj--每天一题-通话时长

    清华oj--每天一题-通话时长 通话时长 通话时长 tips:当第二个小于第一个时间要判断,加一天就好.不考虑的活没过,后来过了(下图) 下面的代码是对的,100/100,已经考虑到了,不用担心 // ...

  2. Python计算代码之间运行时间(运行间隔时间、时长)

    Python3.8以下使用time.clock() 通过代码统计 导入time库:import time 代码开始前获取开始时间:time_start = time.clock() 代码结束后获取结束 ...

  3. 第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,

    第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 --> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年1 ...

  4. Python生成CSV文件模拟某小区用户手机通话记录

    好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...

  5. python快速入门【六】----真题测试

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  6. python中的条件判断稀硫酸_大学mooc2020用Python玩转数据期末考试查题公众号答案...

    大学mooc2020用Python玩转数据期末考试查题公众号答案 更多相关问题 下列表述或叙述中,正确的是().A.1 mol氢B.3 mol H2C.2 mol氢分子D.1 mol H 相同质量的钠 ...

  7. 南京工业大学python考试期末题库_大学慕课用Python玩转数据期末考试查题公众号答案...

    大学慕课用Python玩转数据期末考试查题公众号答案 更多相关问题 雪松的树形为 (5.0分) - Do you think I can borrow your bike for a few hour ...

  8. python学习之给小学生数学运算题(混合加减乘除法)

    python代码随机生成加减乘除混合运算题,给熊孩子练习很不错哦!!! 寒假在家不能让他闲着,熊孩子的计算能力一如既往的差,学渣老爹继续根据学习进度自动生成寒假作业.不多说了,直接上代码,本着能用就好 ...

  9. 第十三届蓝桥杯省赛 python B组复盘(三道代码题全AC居然省一了)

    第十三届蓝桥杯省赛 python B组复盘(三道代码题全AC居然省一了)

最新文章

  1. OpenCV(六)形态学操作1--基础:膨胀与腐蚀(回调函数)
  2. bzoj1227: [SDOI2009]虔诚的墓主人(树状数组,组合数)
  3. 【P2774】方格取数问题(贪心+最大流,洛谷)
  4. 【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )
  5. 牛客每日一题3.31 城市网络 树上倍增
  6. linq中let关键字学习
  7. acm的ubuntu (ubuntu16.04 安装指南,chrome安装,vim配置,git设置和github,装QQ)
  8. Java项目导入eclipse后项目出现JRE System Library [JavaSE-1.8](unbound)
  9. 同事1000行又臭又长 的类!被我用IDEA几分钟重构!真香!
  10. mysql压测宕机_MySQL压测时Linux中断异常飚高,原来是因为...
  11. 图片版坦克大战源代码之坦克类(二)
  12. CTO能力知识地图正式发布
  13. Python-玩转数据-Scrapy中Spiders
  14. 【beef工具-01】神器beef的安装与简介
  15. 美国硕士计算机机械专业排名,工科“三巨头”之一-机械工程的美国硕士申请全解答...
  16. console,控制台也能玩出花样(console操作大全)
  17. 3d打印技术改变生活的影响
  18. 选型笔记之二极管选型
  19. Unity-简单的坦克大战的一些思路
  20. idea运行报路径不存在

热门文章

  1. 求斐波那契数列的第n项 java
  2. 中秋你们发了什么?我们发了这个。。。
  3. 【web渗透】CSRF漏洞详细讲解
  4. vue调用百度地图文档与说明
  5. nginx中 $1,$2,$3是什么 如:set $para $1
  6. 关于input框的兼容性问题
  7. #1001. 求梯形的面积
  8. 【秒懂音视频开发】23_H.264编码
  9. python 通过调取百度接口进行图片OCR文字识别 高识别率
  10. PID控制中P、I、D参数的作用是什么?