Errno 34:循环打印datetime.now()时结果太大

时间:2018-03-08 18:54:51

标签: python datetime while-loop errno ioerror

这可能是一个简单的修复,但它不会一直发生,所以我无法弄明白。

如果计数小于总数,我有一个while循环重复。第一个循环启动时,它会保存日期/时间。循环结束时,我会打印开始日期/时间和结束日期/时间。这告诉用户每个循环何时开始以及花费了多长时间。

这是我的代码:

while count < total:

    bTime = datetime.datetime.now()

    [do a bunch of work]

    print "Repeat code for: "+str(count)+" to "+str(count+15000)
    count += 15000

    print "Start time: " + str(bTime)
    print "End time: " + str(datetime.datetime.now())
print "Finished"

问题是它会运行一段时间然后突然出错并且无法打印datetime.now()因为结果太大了。

Repeat code for fields: 0 to 15000
Start time: 2018-03-07 10:43:46.612000
End time: 2018-03-07 12:03:59.211000
Repeat code for fields: 15000 to 30000
Start time: 2018-03-07 12:03:59.211000
End time: 2018-03-07 13:37:57.851000
 ...
 ...
Repeat code for fields: 135000 to 150000
Start time: 2018-03-08 00:44:11.488000
End time: 2018-03-08 02:22:44.780000
Repeat code for fields: 150000 to 165000
Start time: 2018-03-08 02:22:44.780000
ETraceback (most recent call last):
  File "FAM_meanNDVI_extraction.py", line 210, in <module>
    print "End time: " + str(datetime.datetime.now())
IOError: [Errno 34] Result too large

如果有人知道为什么会这样做,我将非常感谢帮助。老实说,如果我只是删除该行,它将正常工作,我可以继续我的生活,但这对用户来说只是一件好事。

2 个答案:

答案 0 :(得分:0)

试试这个:

print "End time: ",
print datetime.datetime.now()

答案 1 :(得分:0)

IOerror通常与“磁盘已满”或“未找到文件”相关联。

https://docs.python.org/2/library/exceptions.html#exceptions.IOError

我怀疑这是因为你的控制台而不是因为datetime。尝试跳过控制台上的任何内容,然后尝试。它应该继续运行或抛出一些其他错误:P。