我有一个总是看起来像这样的文本文件:
977-183 BCA-0055 2014-02-19 10:08:13.61
977-001 BCA-0058 2014-02-19 10:29:08.18
977-013 BCA-0064 2014-02-19 10:28:35.73
977-129 BCA-0079 2014-02-19 10:15:45.24
这些是生成器。我的目标是添加一个额外的列,显示他们运行到现在的总小时数,这是我运行脚本的时间。我是 python 的新手,被卡住了。我想出了如何制作日期时间对象?现在。我曾希望在我的计算中使用它(timedelta?)但无法为文本文件中的时间创建日期时间继续前进。 我已经尝试了一些东西并阅读了很多但没有运气,这是显示我最新尝试的代码:
import datetime
import time
i = datetime.datetime.now()
print i
# this is what the raw data looks like
# 977-183 BCA-0055 2014-02-19 10:08:13.61
raw0 = open("genParse.txt", "r") # text file containing date and time
fin0 = open("elapsed_time.txt", "w") # will contain elapsed times
for line in raw0:
if '977-' in line:
line = line.split()
date = line[2]
time = line[3]
# create datetime object for use in elapsed time calculations
#tnew = datetime.datetime(date[0:4], date[5:7], date[8:10])
print date[0:4], date[5:7], date[8:10]
最佳答案
使用datetime.datetime.strptime()
将字符串解析为 datetime.datetime()
对象:
dt = datetime.datetime.strptime(date + ' ' + time, '%Y-%m-%d %H:%M:%S.%f')
现在您可以计算耗时:
elapsed = now - dt
这是一个 timedelta
对象。
演示:
>>> import datetime
>>> now = datetime.datetime.now()
>>> date = '2014-02-19'
>>> time = '10:08:13.61'
>>> dt = datetime.datetime.strptime(date + ' ' + time, '%Y-%m-%d %H:%M:%S.%f')
>>> dt
datetime.datetime(2014, 2, 19, 10, 8, 13, 610000)
>>> now - dt
datetime.timedelta(6, 30419, 490913)
此处生成的 timedelta
对象的值为 6 天、30419 秒和 490913 微秒。如何将其格式化为字符串取决于您。
关于python - 计算耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22022785/