Вы можете использовать регулярные выражения для анализа строки времени и использовать datetime
для преобразования в желаемую единицу измерения, например, секунды:
import re, datetime
test_str = '0d20h30m'
conv_dict = {
'd': 'days',
'h': 'hours',
'm': 'minutes',
's': 'seconds',
}
pat = r'[0-9]+[s|m|h|d]{1}'
def timestr_to_dict(tstr):
'e.g. convert 1d2h3m4s to {"d": 1, "h": 2, "m": 3, "s": 4}'
return {conv_dict[p[-1]]: int(p[:-1]) for p in re.findall(pat, test_str)}
print(timestr_to_dict(test_str))
{'days': 0, 'hours': 20, 'minutes': 30}
def timestr_to_seconds(tstr):
return datetime.timedelta(**timestr_to_dict(tstr)).total_seconds()
print(timestr_to_seconds(test_str))
# 73800.0