python:计算时间进度

python: calculation of time progress

我正在编写 python 处理文本文件的代码,并针对每一行输入计算该行中描述的操作所涉及的时间,然后报告 "running time"。要求输出像

        lapse     time
start            12:00
action1  0:37    12:37
action2  1:01    13:38
action3  0:30    14:08

我想到了一些可能的方法,但看起来都很尴尬。最重要的是,我对使用 "time" 或 "strftime" 或 "datetime" 甚至其他东西感到困惑。我确信必须存在一个简单优雅的解决方案。

NB 时区和 DST 无关紧要,如果我能显示 UTC 就足够了,至少在开始时是这样。在稍后阶段,最后一列 (UTC) 可能会增加一列 "local time" 但这是次要的。

已编辑,显然不够清晰,添加示例伪代码:

 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 可以轻松处理的东西,并以计算出的整数秒或分钟或其他任何形式递增。

使用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'