目前我的字符串类似于:
mytime = '143456.45674'
该字符串给出时间:
%HH%MM:%SS . something else
我只对HH:MM:SS
格式感兴趣,所以我可以这样做:
mynewTime = mytime[0:2]+":"+mytime[2:4]+":"+mytime[4:6]
'14:34:56'
这有点难看,我想知道是否有一种更优雅/更有效的方法。也许是正则表达式?
答案 0 :(得分:5)
看起来您正在寻找strptime
和strftime
的组合:
import datetime
mytime = '143456.45674'
ts = datetime.datetime.strptime(mytime, '%H%M%S.%f')
print ts.strftime('%H:%M:%S')
# 14:34:56
答案 1 :(得分:1)
正则表达式的乐趣:)
re.sub(r"(\d{2})(\d{2})(\d{2})\.\d+", r"\1:\2:\3", mytime)
答案 2 :(得分:1)
如果你想在正则表达式中这样做
>>> import re
>>> val=re.sub(r"\..*$", "", "143456.45674")
>>> re.sub(r"(?<=\d)(?=(\d{2})+$)", ":", val )
'14:34:56'