파이썬에서 문자를 시간형태로 변경하는 방법
조회수 716회
안녕하세요.
파이썬에서 외부 api를 사용하여 시간을 불러왔는데 "3m 32s", "1h 23m 6s" 이런식으로 표기가 됩니다. 이것을 "00:03:32", "01:23:06" 이런식으로 2자리씩 콜론으로 구분하게끔 변경하려면 어떻게해야 하나요?
split이나 슬라이싱으로 하기에도 애매하구 번거롭구해서.. 좋은 방법이 있는지 질문드립니다.!
1 답변
-
>>> def hms2iso(s): t = { e[-1]:int(e[:-1]) for e in s.split() } return "%02d:%02d:%02d"%( t.get('h', 0), t.get('m', 0), t.get('s', 0) ) >>> for e in s: print(e, hms2iso(e)) 3m 32s 00:03:32 1h 23m 6s 01:23:06
>>> s = ["3m32s", "1h23m6s"] >>> def hms2iso(f): num = '' t = {} for c in f: if c.isalpha(): t[c] = int(num) num = '' continue num += c return "%02d:%02d:%02d"%( t.get('h', 0), t.get('m', 0), t.get('s', 0) ) >>> for f in s: print(f"{f} -> {hms2iso(f)}") 3m32s -> 00:03:32 1h23m6s -> 01:23:06
댓글 입력