gpt4 book ai didi

python:从带有额外字符的日期时间字符串计算秒数

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:12 25 4
gpt4 key购买 nike

我想为以下输入文件的每一行创建一个新列,其中包含自 1970 年以来的秒数:

timestamp, air_temp, rh, pressure, dir, spd
2016-11-30T00:00:00Z,-36.50,56.00,624.60,269.00,5.80
2016-11-30T01:00:00Z,-35.70,55.80,624.70,265.00,5.90
2016-11-30T02:00:00Z,-34.80,56.00,625.00,266.00,6.30

第一列代表时间戳,但它包含额外的字符“T”和“Z”。我当前的代码如下所示:

i = 0
ip_file.readline()
for line in ip_file:

line = line.strip()

year[i] = int(line[0:4])
month[i] = int(line[5:7])
day[i] = int(line[8:10])
hour[i] = int(line[11:13])

time[i] = (datetime(year[i],month[i],day[i],hour[i])-datetime(1970, 1, 1)).total_seconds()
i += 1

这会返回我想要的,但如果输入文件很大,则需要很长时间。如果时间戳没有那些额外的字符,我会直接使用它而不是计算年、月、日和小时。有没有更好的办法?如有任何想法,我们将不胜感激。

最佳答案

而不是使用字符串切片。为什么不用逗号分割字符串?并使用 datetime 模块中的 strptime 方法将字符串 datetime 转换为 datetime 对象。

示例:

import datetime

with open(path, "r") as infile:
for i in infile.readlines()[1:]:
dVal = i.strip().split(",")[0]
print (datetime.datetime.strptime(dVal, '%Y-%m-%dT%H:%M:%SZ')-datetime.datetime(1970, 1, 1)).total_seconds()

输出:

1480464000.0
1480467600.0
1480471200.0

关于python:从带有额外字符的日期时间字符串计算秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com