如何在python中使用re从PT格式的datetime提取分钟和秒
如何从时间格式如何在python中使用re从PT格式的datetime提取分钟和秒,python,regex,python-3.x,Python,Regex,Python 3.x,如何从时间格式PT34M23S或PT32S中提取分和秒,并将其转换为总秒数 重新导入 M=重新编译('[\d]+M') S=重新编译('[\d]+S') txt='PT32S' m=重新编译('[\d]+')) s=重新编译('[\d]+')) 如果M.findall(txt)=[]: 分钟=M.findall(txt) secs=S.findall(txt) mm=m.findall(分钟[0]) ss=s.findall(秒[0]) 其他: ss=s.finall(s.findall(txt
PT34M23S
或PT32S
中提取分和秒,并将其转换为总秒数
重新导入
M=重新编译('[\d]+M')
S=重新编译('[\d]+S')
txt='PT32S'
m=重新编译('[\d]+'))
s=重新编译('[\d]+'))
如果M.findall(txt)=[]:
分钟=M.findall(txt)
secs=S.findall(txt)
mm=m.findall(分钟[0])
ss=s.findall(秒[0])
其他:
ss=s.finall(s.findall(txt)[0])
以下是从这些日期格式中提取秒数的几个选项
使用:
使用图书馆:
以下是从这些日期格式中提取秒数的几个选项 使用: 使用图书馆:
import re
txt = "PT34M23S"
seconds = 0
try:
seconds += int(re.search(r"(\d+)S$", txt).group(1))
seconds += int(re.search(r"(\d+)M", txt).group(1)) * 60
except AttributeError:
pass
print(seconds) # => 2063
from datetime import datetime
txt = "PT34M23S"
dt = 0
try:
dt = datetime.strptime(txt, "PT%MM%SS")
except ValueError:
dt = datetime.strptime(txt, "PT%SS")
seconds = (dt - datetime.strptime("0", "%S")).total_seconds()
print(seconds) # => 2063.0