查找最后一个唯一标识符并检查数字,然后将时间与当前时间进行比较

时间:2013-11-10 20:19:13

标签: python python-2.7 csv

@SOF

在我的csv文件中,如下所示,我正在尝试使用一些代码来循环查找最后一个唯一的类(一个唯一的类基于元素0和元素1合并在一起)在我的示例中最后一个唯一的类是:Class02CD1等于:Class02CD1

然后需要查看该唯一类中学生的元素4(在此示例中,只有2个学生,如果其中任何一个存在数字,则需要从元素2获取时间并进行比较到目前的时间,如果当前时间是30分钟或更长时间后给出它应打印“迟到”一词

CSV文件

uniq1,uniq2,three,four,five,six
Class01,CD2,data,data,,data
Class01,CD2,data,data,22,data
Class01,CD2,data,data,,data
Class01,CD2,data,data,4,data
Class02,CD3,data,data,,data
Class02,CD3,data,data,,data
Class02,CD3,data,data,,data
Class02,CD3,data,data,,data
Class02,CD3,data,data,,data
Class02,CD3,data,data,3,data
Class02,CD3,data,data,,data
DClass2,DE2,data,data,133,data
DClass2,DE2,data,data,24,data
Class02,CD1,13:01,data,,data
Class02,CD1,13:05,data,1,data
  • 循环浏览唯一元素以查找最后一个类。
  • 检查该唯一类中是否存在数字。
  • 如果该号码存在,那么它应该从元素2
  • 获得时间
  • 如果号码存在且我们有时间,那么我们应该将它与当前时间进行比较。
  • 如果当前时间是30分钟或者在最后一堂课的时间之后那么它应该打印“迟到”否则什么也不做。

任何人都知道如何解决这个问题,我完全迷失了,并且不知道如何解决这个问题。

打印

Class02CD1
Current: 2013-11-11 12:07:37.635000
Fetched: 2013-11-11 13:05:00
Calculated: 1382.61666667
late

2 个答案:

答案 0 :(得分:1)

这是最后时间比较部分的答案。

import csv

dict = {}
key = False
with open('test.csv', mode='r') as infile:
    reader = csv.reader(infile,)
    first = False
    for row in reader:
        if first:
            first = True
            continue
        key = row[0]+row[1]
        if key in dict:
            dict[key].append(row)
        else: 
            dict[key] = [row]
    print dict

if(key):
    for row in dict[key]:
        # do time comparison
        pass

答案 1 :(得分:1)

首先迭代文件并找到最后一行的类,然后再次遍历文件,现在如果给定行上的类名等于存储的类名,那么在那里应用你的条件并使用{{1找出时差的模块。

datetime