python - 计算耗时

标签 python datetime

我有一个总是看​​起来像这样的文本文件:

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/

相关文章:

python - 为什么基于 FFTW 的 pyfftw 比 numpy 的 fft() 慢?

python - pandas dataframe 聚合固定数量的行

c# - 比较一年中的月份与日期时间的月份

java - 合并重叠的日期范围 - Java

android - 如何使用简单的数据库输入和获取当前日期

python - 生成 Twitter 的共享消息和缩短的 URL

python - 将具有最接近值的列添加到 PySpark Dataframe

python - 读取txt文件的第一行和最后一行;最快的方法和子流程故障排除

mysql - 如何总结一系列日期时间

ruby-on-rails - 使用 PostgreSQL 按日期时间为嵌套对象排序