有更简单的方法吗?

时间:2016-12-29 15:37:48

标签: python time

所以我写了一个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)

2 个答案:

答案 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