gpt4 book ai didi

python - 使用 Python strptime 将日期字符串列表转换为日期时间非常慢

转载 作者:太空狗 更新时间:2023-10-29 18:15:42 25 4
gpt4 key购买 nike

我有包含表示 ISO 格式日期的字符串列表的数据文件。目前,我正在阅读它们:

mydates = [ datetime.datetime.strptime(timdata[x], "%Y-%m-%dT%H:%M:%S") for x in range(len(timedata)) ]

这看起来非常简单,但在处理约 25000 个日期的庞大列表时速度慢得离谱 -> 每个转换后的列表大约 0.34 秒。因为我有成千上万个这样的列表,所以我正在寻找一种更快的方法。但是,我还没有找到。 dateutil 解析器的性能更差......

最佳答案

这里有一种方法可以将速度提高约 3 倍。

原始版本:

In [23]: %timeit datetime.datetime.strptime("2013-01-01T01:23:45", "%Y-%m-%dT%H:%M:%S")
10000 loops, best of 3: 21.8 us per loop

更快的版本:

In [24]: p = re.compile('[-T:]')

In [26]: %timeit datetime.datetime(*map(int, p.split("2013-01-01T01:23:45")))
100000 loops, best of 3: 7.28 us per loop

这显然远不及 strptime() 灵活。

编辑:使用单个正则表达式提取日期组件稍微快一些:

In [48]: pp = re.compile(r'(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})')

In [49]: %timeit datetime.datetime(*map(int, pp.match("2013-01-01T01:23:45").groups()))
100000 loops, best of 3: 6.92 us per loop

关于python - 使用 Python strptime 将日期字符串列表转换为日期时间非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14163399/

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