我正在尝试将格里高利日期转换为朱利安日,从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
任何帮助都将受到赞赏。
答案 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}}