@Kwad

Как превратить 3w3d12h12m40s в нормальное время?

Здравствуйте.
Получаю с АПИ аптайм в таком виде: 3w3d12h12m40s
Как это время конвертировать в нормальный вид ?
  • Вопрос задан
  • 210 просмотров
Решения вопроса 2
Небезопасно, но как вариант без импортов:
str1 = "3w3d12h12m40s"

seconds = 
  eval(
    str1
      .replace("w", "*86400*7+")
      .replace("d", "*86400+")
      .replace("h", "*3600+")
      .replace("m", "*60+")
      .replace("s", "")
  )

# 2117560
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
По мне - вид и так нормальный.
Если к примеру хотите перевести в секунды - делается это несложно:
import re


def to_seconds(instr: str) -> int:
    FORMAT = {
        '\D?(\d+)s': lambda x: x,
        '\D?(\d+)m': lambda x: 60 * x,
        '\D?(\d+)h': lambda x: 60 * 60 * x,
        '\D?(\d+)d': lambda x: 24 * 60 * 60 * x,
        '\D?(\d+)w': lambda x: 7 * 24 * 60 * 60 * x,
    }
    outstr = 0
    for key in FORMAT:
        if re.search(key, instr):
            outstr += FORMAT[key](int(re.search(key, instr).group(1)))
    return outstr

str1 = "3w3d12h12m40s"
print(to_seconds(str1))

2117560
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@anerev
Вот как можно разбить
import re
string = '3w3d12h12m40s'
string1 = re.findall(r'\d*.', strin)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы