格鲁利亚日到朱利安日(循环​​列表)

时间:2014-08-14 00:21:02

标签: python loops for-loop time

我正在尝试将格里高利日期转换为朱利安日,从csv文件中读取日期列表。这是我到目前为止的代码:

import date time
import csv
import math
import numpy

data = open('tmp2')

month, day = [ ], [ ], [ ]

for index, line in enumerate(data.readlines( )):

    year.append(int(line.split(",")[0]))
    month.append(int(line.split(",")[1]))
    day.append(int(line.split(",")[2])) 

 for y, d, m in zip(year, day, month):
     DJ= d - 32075 + 1461*(y + 4800 + (m -14)/12) / 4 + 367*(m - 2 - ( m - 14 ) / 12 * 12 ) / 12 - 3*((y + 4900 + ( m -14) / 12 ) / 100) / 4

 print DJ

但我得到了这个结果:

  2456177
  2456177

基本上只有两个值。 csv文件具有下一个结构:

 2012,7,09
 2012,7,11
 2012,8,11
 2012,8,12
 2012,8,14
 2012,9,19
 2012,9,20
 2012,9,23

任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

我会读取该文件,并在您阅读时逐行操作。也没有必要拉链,然后立即打开包装。您也可以map将值int设置为with open('tmp2', 'r') as f: for line in f: y, m, d = map(int, line.split(',')) DJ = d - 32075 + 1461*(y + 4800 + (m -14)/12) / 4 + 367*(m - 2 - ( m - 14 ) / 12 * 12 ) / 12 - 3*((y + 4900 + ( m -14) / 12 ) / 100) / 4 print DJ ,以便对其进行操作

2456119
2456121
2456152
2456153
2456155
2456191
2456192
2456195

输出(我不知道这是否正确,我只是使用了你的公式)

{{1}}