Python:将经过的时间(分钟:秒)解析为秒

时间:2012-04-30 19:46:26

标签: python parsing datetime time

假设我有一个类似'2:19.83 blah blah...blah blah'的字符串,格式为minutes:seconds.centiseconds blah...blah可以表示除换行符之外的任何字符序列。

我想解析并获得向下舍入的秒数。因此,在上面的示例中,结果将是139

这样做的最佳方式是什么?

4 个答案:

答案 0 :(得分:5)

我首先从字符串中获取时间部分

>>> newstring=s.split('.',1)[0]

然后我会用strptime来读它...

>>> tt=time.strptime(newstring,"%M:%S")

然后最后,在几秒钟内得到时间。

>>> tt.tm_min * 60 + tt.tm_sec

不是一线,但非常简单......

答案 1 :(得分:2)

sum(x*y for x,y in zip(map(int, re.findall(r'^(\d+):(\d+)', string)[0]), [60,1]))

答案 2 :(得分:2)

这个怎么样?也许我承认并不是特别漂亮,但我觉得功能性和易于理解。

鉴于

s = '2:19.83'

tmp = s.split(':')
min = int(tmp[0])
sec = int(tmp[1].split('.')[0])

total_secs = min * 60 + sec   
print total_secs

产量

139

答案 3 :(得分:1)

这似乎可以满足您的需求:

>>> s = '2:19.83 blah blah...blah blah'
>>> import re
>>> m = re.match(r'(?P<min>\d):(?P<sec>\d{2})\.\d+', s)
>>> if m:
...     seconds = (int(m.group('min')) * 60) + int(m.group('sec'))
...     print seconds
139