所以我写了一个python代码,将秒转换为小时分钟和秒,但代码看起来并不整洁。做我的脚本做的更好的方法是什么?
from fractions import Fraction as Frac
from decimal import Decimal as Deci
def Hrs(mins,hr=[],deci=[],hrs=True):
return(Seperator(mins/60))
def Seperator(Decimal,num=[],deci=[],nums=True):
del num[:],deci[:]
for item in str(Decimal):
if item == '.':
deci.append(item)
nums = False
continue
num.append(item)if nums else deci.append(item)
return''.join(num),''.join(deci)
def Mins(secs):
t = Deci(float(Frac(secs,60)))
return t
def Secs(deci):
r = Deci(float(deci*60))
return r
def Clean(decimal,deci=[],p=True):
del deci[:]
for item in str(decimal):
if item == '.':
if p:deci.append(item);p=False;continue
else: break
deci.append(item)
return float(''.join(deci))
if __name__ == '__main__':
Seconds = 6033
Hours = Hrs(Mins(Seconds))[0]
Minutes = int(Secs(Clean(Hrs(Mins(Seconds))[1])))
Seconds = int(eval(Seperator(Secs(Clean(Hrs(Mins(Seconds))[1])))[1])*60)
print '{}:{}:{}'.format(Hours,Minutes,Seconds)
答案 0 :(得分:2)
绝对。你走了:
def convert(total):
secs = total%60
total /= 60
minutes = total%60
total /= 60
hours = total%24
days = total/24
return (days, hours, minutes, secs)
convert(13246345)
输出:(153, 7, 32, 25)
答案 1 :(得分:0)
这应该可以解决问题
import time
localtime = time.localtime()
timeString = time.strftime("%Y%m%d%H%M%S", localtime)
timeString = time.strftime("%H:%M:%S")
print timeString