我发现自己需要在python配置文件中指定一个时间跨度。
有没有办法可以在带有stdlib的python配置文件中指定更人性化的时间帧(类似于PostgreSQL的Interval语法)?或者这需要第三方lib?
澄清我并没有特别在ConfigParser.ConfigParser
stdlib API中寻找任何内容。我想我真正需要的是一种从人类可读日期/时间间隔到datetime.timedelta
值的方法。
答案 0 :(得分:1)
我认为没有标准的库模块。我写了一个这样做的。您可以安装它,或根据您的需要进行调整。
该模块名为pycopia.timespec
它将诸如“1day 3min”之类的字符串转换为秒,作为float。从中获取datetime.timedelta
很容易。
答案 1 :(得分:1)
我在somewhat related question中找到了一个很好的答案。事实证明humanfriendly
库做得很好:
In [1]: import humanfriendly
In [2]: humanfriendly.parse_timespan('1w')
Out[2]: 604800.0
以秒为单位。要获取timedelta
对象,您可以简单地加载该对象:
In [3]: from datetime import timedelta
In [4]: timedelta(seconds=humanfriendly.parse_timespan('1w'))
Out[4]: datetime.timedelta(7)
由于人类友好型还支持其他方式的转换,因此您也可以执行完整的往返行程,如下所示:
In [5]: humanfriendly.format_timespan(timedelta(seconds=humanfriendly.parse_timespan('1w')).total_seconds())
Out[5]: '1 week'
不幸的是,请注意format_timespan
如何不访问timedelta
对象:只有一个整数(秒)。