如何使用python将冒号放在大数字的元素之间

时间:2017-07-10 08:53:13

标签: python-2.7

我的问题是我的头衔。我想把冒号放到号码2034820.它应该看起来像2:03:48:20 基本上这是我的HHMMSSMS格式的时间数据,即小时秒和毫秒。我想绘制关于这个时间格式的其他数据。如何在y轴上绘制数据,在x轴上绘制给定格式的时间。

data = numpy.genfromtxt('inputfile.dat') fig=plt.figure()
ax1 = plt.subplot(111) sat1=ax1.plot(data[:,1],'b',linewidth=1,label='SVID-127') 
sat2 = ax1.plot(data[:,2],'m-',linewidth=1,label='SVID-128')

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:0)

您可以使用datetime.strptime解析时间,然后重新format

from datetime import datetime

tme = datetime.strptime('{:08d}'.format(2034820), '%H%M%S%f').time()
strg = '{0:%H:%M:%S:%f}'.format(tme)
print(strg[:-4]) # cut the trailing '0000'
# 02:03:48:20

这假设您的输入是一个整数(将使用'{:08d}'.format(2034820)将其转换为长度为8的零填充字符串;如果数据以字符串形式出现,则需要先将其转换为int:{{1 }})。

来自您的评论:您似乎获得了自午夜以来经过的秒数。对于那些你可以做到的人:

'{:08d}'.format(int('2034820'))

给出了测试数据:

from datetime import time

def convert(timefloat):
    hours, rest = divmod(timefloat, 3600)
    mins, rest = divmod(rest, 60)
    secs, rest = divmod(rest, 1)
    microsecs = int(10**6 * rest)
    tme = time(int(hours), int(mins), int(secs), microsecs)
    return '{0:%H:%M:%S:%f}'.format(tme)[:-4]