我正在编写处理文本文件的python代码,并且对于每行输入,计算该行中描述的操作所涉及的时间,然后报告“运行时间”。所需的输出如
lapse time
start 12:00
action1 0:37 12:37
action2 1:01 13:38
action3 0:30 14:08
我找到了一些可能的方法,但都看起来很尴尬。最重要的是我对使用“时间”或“strftime”或“datetime”或者甚至是其他东西感到困惑。我相信必须存在一个简单优雅的解决方案。
NB时区和DST无关紧要,如果我能够显示足够的UTC,至少在开始时。在稍后阶段,最后一列(UTC)可能会被“本地时间”列扩充,但这是次要的。
编辑,因为明显缺乏清晰度,添加示例伪代码:
TIME='12:00'
PCS_PER_HOUR=750
with infile:
read line of data
process data, including calc of PCS_DONE
LAPSE=PCS_DONE/PCS_PER_HOUR
TIME += LAPSE
print(' ..... ' ,format(data, data, data, LAPSE, TIME))
我的问题是如何将“TIME = '12:00”变成python可以轻松处理的东西,并以计算的整数秒或分钟或其他任何值递增。
答案 0 :(得分:1)
使用datetime.timedelta
。
设置开始时间。
In [1]: import datetime
最初的时间是12小时。
In [2]: start = datetime.timedelta(hours=12)
In [3]: start
Out[3]: datetime.timedelta(0, 43200)
假设LAPSE
为0.23小时(每小时除以件数产生小时数)。
In [4]: action1 = datetime.timedelta(hours=0.23)
现在您可以根据需要设置时间格式。标准表示是小时,分钟和秒:
In [5]: str(start)
Out[5]: '12:00:00'
In [6]: str(start+action1)
Out[6]: '12:13:48'