如何在Python中解析freetext时间间隔,从几年到几秒?

2024-09-29 17:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Python解析自由文本时间间隔,如下所示:

  • 1秒
  • 2分钟
  • 3小时
  • 4天
  • 5周
  • 6个月
  • 7年

有没有一种无痛的方法可以做到这一点,理想情况下只需调用一个库函数?在

我试过:

  • dateutil.parser.parse(),它可以理解秒到小时,但不能理解几天或更长时间。在
  • mx.DateTime.DateTimeDeltaFrom(),它可以通过几天来理解,但在几周或更高的时间内失败,并且是静默的(例如,它可能创建长度为0的间隔,或者将“2个月”解析为2分钟)。在

Tags: 方法文本parserdatetime间隔parse时间情况
3条回答

这个对我来说是新的,但是根据一些谷歌搜索,你有没有试过whoosh?在

编辑:还有parsedatetime

#!/usr/bin/env python
from datetime import datetime
import parsedatetime as pdt # $ pip install parsedatetime

cal = pdt.Calendar()
for time_str in ['1 second', '2 minutes','3 hours','5 weeks','6 months','7 years']:
    diff = cal.parseDT(time_str, sourceTime=datetime.min)[0] - datetime.min
    print("{time_str:<10} -> {diff!s:>20} <{diff!r}>".format(**vars()))

输出

^{pr2}$

^{}现在支持所有原始请求的间隔。在

pytimeparselib怎么样

以秒为单位返回时间:

from pytimeparse.timeparse import timeparse
>>> timeparse('33m')
1980
>>> timeparse('2h33m')
9180
>>> timeparse('4:17')
257
>>> timeparse('5hr34m56s')
20096
>>> timeparse('1.2 minutes')
72

源似乎在这里https://github.com/wroberts/pytimeparse

相关问题 更多 >

    热门问题