求Python中类似Perl Time::Duration::Parse的时长转秒工具
Python中类似Time::Duration::Parse的时长解析库
Perl的Time::Duration::Parse能把自然语言描述的时长转成秒数,Python里有几个功能类似的实用库,以下是常用方案:
1. pytimeparse
这是最接近需求的库,支持自然语言表述和缩写格式的时长解析,返回总秒数。
安装
pip install pytimeparse
使用示例
from pytimeparse import parse print(parse("1 day and 2 seconds")) # 输出86402 print(parse("7 seconds")) # 输出7 print(parse("5m")) # 输出300 print(parse("1 year and 5 months")) # 输出44496000(默认按30天/月、365天/年计算)
2. humanfriendly
这个库除了解析时长,还支持格式化时长,但同样可以实现自然语言转秒数的需求。
安装
pip install humanfriendly
使用示例
from humanfriendly import parse_timespan print(parse_timespan("1 day and 2 seconds")) # 输出86402 print(parse_timespan("7 seconds")) # 输出7 print(parse_timespan("5m")) # 输出300 print(parse_timespan("1 year and 5 months")) # 输出44496000
3. dateparser(支持更复杂的自然语言)
dateparser主要用于解析日期,但也支持解析相对时长,适合处理更灵活的自然语言表述。
安装
pip install dateparser
使用示例
from dateparser.time_parser import parse_timespan result = parse_timespan("1 day and 2 seconds") print(result.total_seconds()) # 输出86402.0 print(parse_timespan("7 seconds").total_seconds()) # 输出7.0 print(parse_timespan("5m").total_seconds()) # 输出300.0 print(parse_timespan("1 year and 5 months").total_seconds()) # 输出44496000.0
这些库都能满足将自然语言时长转换为秒数的需求,其中pytimeparse的语法兼容性和Perl的Time::Duration::Parse最接近,推荐优先尝试。
内容的提问来源于stack exchange,提问作者JohnnyLoo
相关产品推荐
相关产品推荐

