某大数据_学生在宿舍的进出时间记录
来源:互联网 发布:java断点快捷键 编辑:程序博客网 时间:2024/05/14 07:44
#coding:utf-8import sysimport xlrdimport timeimport threadingfrom Queue import Queuefrom datetime import datetimefrom operator import itemgetterfrom xlrd import xldate_as_tupledef dealExcle(filename): myqueue = Queue() X_thousand = [] all_content = [] # deal with excel data = xlrd.open_workbook(filename) table = data.sheets()[0] rows = table.nrows cols = table.ncols for i in range(rows): # 去除 excle 第一行 if i == 0: continue # 每 10000 个数据 取一个 列表 if i%10000 == 0: X_thousand = sorted(X_thousand,key=itemgetter(0)) all_content.append(X_thousand) X_thousand = [] # 读取 excel 每一行 因为时间直接读取, 有问题 会用浮点型显示 row_content = [] for j in range(cols): ctype = table.cell(i, j).ctype cell = table.cell_value(i, j) if ctype == 3: date = datetime(*xldate_as_tuple(cell, 0)) cell = date.strftime('%Y/%d/%m %H:%M:%S') row_content.append(cell) X_thousand.append(row_content) # 将所有数据导入 队列 for x in all_content: myqueue.put(x) return myqueuedef subTime(d2,d1): temp = time.strptime(d1, "%Y/%d/%m %H:%M:%S") timestampd1 = time.mktime(temp) temp = time.strptime(d2, "%Y/%d/%m %H:%M:%S") timestampd2 = time.mktime(temp) if timestampd2 > timestampd1: return timestampd2 - timestampd1 else : return timestampd1 - timestampd2# okdef addTime(X_thounsand,Startnum,Endnum): num = 0 for x in xrange(Startnum+1,Endnum+1): if X_thounsand[x-1][2] == 1 and X_thounsand[x][2] == 0: num = num + subTime(X_thounsand[x][1],X_thounsand[x-1][1]) return num# 处理 X_thousands 的数据 并输出def run(myqueue): while myqueue.qsize() > 0: X_thounsand = myqueue.get() flag = 1 for x in xrange(1,len(X_thounsand)): if X_thounsand[x-1][0] == X_thounsand[x][0]: flag = flag + 1 else : Endnum = x-1 Startnum = Endnum - flag + 1 # 如果 Startnum == Endnum 则说明只有一个数据 if Startnum != Endnum : num = addTime(X_thounsand,Startnum,Endnum) print "-"*20 print "学号 : %d | %5s 分钟" % ( int(X_thounsand[Endnum][0]) ,str(num/60)) flag = 1if __name__ == '__main__': if len(sys.argv) != 2: print "Usage : python run.py xxx.xlsx" exit() filename = sys.argv[1] myqueue = dealExcle(filename) threads = [] for i in range(30): t = threading.Thread(target=run,args=(myqueue,)) t.start() threads.append(t) for t in threads: t.join()# dt = "2016-05-05 20:28:54"# timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S")# timestamp = time.mktime(timeArray)# from operator import itemgetter# sorted(a,key=itemgetter(0))# >>> from datetime import datetime# >>> d1 = datetime(2017,11,14,11,30,20)# >>> d2 = datetime(2017,11,14,17,20,11)# >>> (d2-d1).seconds# 20991# mysql> create table student(# -> id char(10),# -> time char(25),# -> turn char(5));
阅读全文
0 0
- 某大数据_学生在宿舍的进出时间记录
- 问题 M: 打印学生的数据记录
- 2017.4.5 假期的宿舍 思考记录
- 大宿舍-发现最好的App
- 证券公司信息化_什么是大数据?大数据在证券公司的应用怎样?数据价值发掘的陷阱有哪些?
- 老师在某宿舍发现了一个烟头,于是该宿舍的八名同学被叫到办公室一一审讯。
- 8-数据类型_处理5个学生的数据
- storm的基础介绍_数据分析_大数据
- 在宿舍的最后一晚上
- 第一次在宿舍睡觉的兴奋
- 做大数据的公司_技术
- (c++)现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,
- 输出一个学生的成绩数组,该数组中有五个学生的数据记录
- 捕鱼修改游戏进出记录
- 分而治之_大数据
- 进出的动画
- Fragment的进出动画
- 大数据问题记录
- java基础5:jar包打包,类、抽象类、接口作为方法参数,返回值详解及案例
- 互联网高性能开发必备技能 缓存技术
- win7 部署caffe和TensorFlow、PyTorch
- jmeter(八)断言
- CNCF启动K8s软件一致性项目,Rancher入选全球首批K8s认证平台
- 某大数据_学生在宿舍的进出时间记录
- 欢迎使用CSDN-markdown编辑器
- 汇编指令笔记
- 坐标属性
- [Linux--Shell命令]--tr命令
- sdut 2413
- Quartz-错过触发机制
- 高低字位的取值宏
- warning: this decimal constant is unsigned only in ISO C90