1

对不起,我有点痛苦,但我损坏了我的代码,我不明白出了什么问题。我刚刚删除了一个 if 语句,但现在看来 timedelta 不再被识别并且它破坏了代码。我很确定我没有删除任何参考。我在挠头,但找不到问题所在..

你知道出了什么问题吗?

import random
import datetime
import csv
from itertools import groupby



def generator():

    i=0
    while 1:
        yield random.randint(-1, 1), datetime.datetime.now()
        i=i+1


def keyfunc(timestamp,interval):
    xt = datetime.datetime(2013, 4,4)
    dt=timestamp
    delta_second =(dt - xt).seconds
    normalize_second = (delta_second / (interval*60)) * (interval*60)
    newtime = xt + timedelta(seconds=normalize_second)
    return newtime


mynumber = 100
for random_number, current_time in generator():
    mynumber += random_number
    reftime5min = keyfunc(current_time,5)


print mynumber,",", current_time, reftime5min

我现在得到的错误是:

回溯(最近一次通话最后):
  文件“”,第 35 行,在
  文件“”,第 28 行,在 keyfunc 中
NameError:未定义全局名称“timedelta”
4

2 回答 2

4

更改timedeltadatetime.timedelta。您没有timedelta直接导入该类,因此您需要使用限定名称。

于 2013-04-04T09:51:07.147 回答
1
from datetime import timedelta

http://docs.python.org/2/library/datetime.html

于 2013-04-04T09:50:00.303 回答