2013-03-22 37 views
0

我正在运行一些python和pyfits的代码,我正在从头文件读出一行信息。我得到了正确的线,但由于它是如何写在头上的,它用分号打印出我需要的数字。python pyfits,阅读标题信息和在计算中使用

我运行线是 打印头[0] .header [ '奥普']

此打印 34:04:32.04

我需要做一个计算,其中我添加这些数字在一起,但不知道如何做,因为它们被冒号分隔。谁能帮忙?

回答

1

像这样的东西应该解决您的问题:

header[0].header['opp'] = "34:04:32.04" 
print (sum(float(x) for x in header[0].header['opp'].split(":"))) 

...它输出:

70.03999999999999 

(EDIT)

或者,如果实际值弥补了时间小时,分,秒:

s = "34:04:32.04" 
ss = [float(x) for x in s.split(":")] 
print (ss[0] + ss[1]/60 + ss[2]/3600) 

...,用于输出时间值:

34.07556666666667 
+0

惊人谢谢你,在实际工作中的计算,我需要做的是, 34 + 4/60±32.04/3600 是有可能做到这一点? – astrochris 2013-03-22 23:02:05

+0

列表理解是美好的事情。我已经修改了我的答案来做你需要的计算。 – Simon 2013-03-22 23:08:47

+0

太神奇了,谢谢 – astrochris 2013-03-22 23:13:35