我收到的字符串格式如下。"PTXMYS" X是分钟数,Y是秒数。
我想把这个字符串变成一个 "PTXMYS"。int
呈现出总的秒数。datetime
和其他的东西,对我来说就是不行,我在网上看到这个格式是iso8601的标准格式,所以我觉得很奇怪,真的不行。
字符串的例子。
x="PT4M13S"
你想做的事情可以用regex轻松解决。试试这个。
import re
m, s = re.findall('PT(\d+)M(\d+)S',x)[0]
total_secs = 60*int(m) + int(s)
print(total_secs)
输出
253
有一个第三方的库可以解析这些字符串。isodate
:
import isodate
isodate.parse_duration("PT4M13S")
# datetime.timedelta(seconds=253)
isodate.parse_duration("PT4M13S").total_seconds()
# 253.0
为了完整起见,有一个选项可以通过以下方式来实现这一点: datetime
's strptime
和 timedelta
's total_seconds()
:
from datetime import datetime, timedelta
# parse minute and second to datetime object:
t = datetime.strptime("PT4M13S","PT%MM%SS")
# convert to timedelta to get the total seconds
td = timedelta(minutes=t.minute, seconds=t.second)
td.total_seconds()
# 253