1.把文件处理成CSV格式,也就是每行不同字段都用逗号分隔,然后my_list = line.split(',)
2.建立一个字典a,用于存储人员打电话的开始时间和结束时间,这个要去除连续记录,内容格式为 {name:[start_time,end_time]},然后针对文件处理
3、my_list[0]不等于下一行的值,则把上一行的my_list[0]作为key,结束时间填在字典的end_time里,把下一行的mylist[0]作为key,开始时间填在字典的start-time,然后循环下来,实现去重
4、时间间隔=mylist[0]:mylist[0][1]-mylist[0][0]就是这个人开始通话距离上一个人通话结束的时间间隔
python定时程序(每隔一段时间执行指定函数)[python] view plain copy
import os
import time
def print_ts(message):
print "[%s] %s"%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message)
def run(interval, command):
print_ts("-"*100)
print_ts("Command %s"%command)
print_ts("Starting every %s seconds."%interval)
print_ts("-"*100)
while True:
try:
# sleep for the remaining seconds of interval
time_remaining = interval-time.time()%interval
print_ts("Sleeping until %s (%s seconds)..."%((time.ctime(time.time()+time_remaining)), time_remaining))
time.sleep(time_remaining)
print_ts("Starting command.")
# execute the command
status = os.system(command)
print_ts("-"*100)
print_ts("Command status = %s."%status)
except Exception, e:
print e
if __name__=="__main__":
interval = 5
command = r"ls"
run(interval, command)
楼主说的需要一秒处理一个数据情况需要多线程Threading模块来实现,下面这个程序是我写的一个多线程的例子,希望能帮到楼主=============thread.py===================
#coding:utf8
import time
import random
import datetime
import threading
'''
多线程测试文件
'''
#假定这个方法是楼主所说的处理方法,它需要花费一段时间
def process():
time.sleep(random.random())
print "PROCESS OK!"
#主函数
for x in range(100):
print ">The time is %s." % (datetime.datetime.today().strftime("%H:%M:%S"))
#此处创建一个线程对象
t = threading.Thread(target = process)
t.start()
#一秒处理一个数据
time.sleep(1)
===================
看不懂楼主的意思,楼主有运行过我给你的代码吗?不是多线程可以解决的问题?