@Sapfir_4ik
Проект надо начинать делать за 2 часа до сдачи.

Как преобразовать различное время в секунды?

У меня есть str переменная time с временем в разных форматах, например
time = '2h'  # или
time = '4h 30min'  # или
time = '14d'

Не нашел рабочего решения для перевода такого времени в секунды (int).
Буду благодарен если подскажете как это сделать или наводку на статью.
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Zolg
Распарсить разные форматы регуляркой(ами), результат парсинга либо засунуть в timedelta, либо умножить на количество секунд в минуте/часе/итд и сложить самостоятельно
Ответ написан
Комментировать
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Ну напишите сами:
from functools import reduce

def to_seconds(text):
    mult = {
        'min': 60,
        'h': 60*60,
        'd': 24*60*60
    }
    return reduce(lambda summ, x:summ + int(''.join(filter(str.isdigit, x))) *  mult.get(''.join(filter(str.isalpha, x))), text.split(' '), 0)

for im in ['2h', '4h 30min', '14d']:
    print(im, to_seconds(im))

# 2h         7200
# 4h 30min   16200
# 14d        1209600
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы