如何保存日期格式并在python中时间变化时进行比较?

时间:2014-04-11 15:19:00

标签: python numpy

我必须从文件中读取数据。文件是这样的。

CIRCUITNAME=CIRCUIT1
00.12 12/20 2.3 23.6
00.12 12/20 2.3 23.6
00.42 12/20 2.2 23.3
00.42 12/20 2.2 23.3
00.42 12/20 2.2 23.3
01.12 12/20 2.2 23.1
01.12 12/20 2.2 23.1

现在,我编写了一个函数来读取它并为每列返回一个相应的numpy数组。

def load_ci(filepath):
 fileObj=open(filepath, 'r')
 time_1=[]
 time_2=[]
 date_count=[]
 t=0
 ti=0
 d=""
 #da=0
 loadCurrent_1=[]
 surfaceTemp_1=[]
 loadCurrent_2=[]
 surfaceTemp_2=[]
 ambient=[]
 read=0
 for line in fileObj:
    if not line.strip():
        continue    
    if read==1:
        if '[AMBIENT]' in line:
            read=3
            continue
        elif  'CIRCUITNAME=CIRCUIT2' in line: read=2
        else:
            if line!='\n' and '[CIRCUIT2]' not in line:
                point=line.split(' ')                    
                date_count.append(point[1])
                t=(float(point[0]))
                ti=int(t)*3600+(t-int(t))*60*100
                time_1.append(ti)
                loadCurrent_1.append(float(point[2]))
                surfaceTemp_1.append(float(point[3]))
    if read==2:
        if '[AMBIENT]' in line:
            read=3
            continue
        elif  'CIRCUITNAME=CIRCUIT2' in line: read=2
        else:
            if line!='\n' and '[CIRCUIT2]' not in line:
                point=line.split(' ')
                t=(float(point[0]))
                ti=int(t)*3600+(t-int(t))*60*100
                time_2.append(ti)
                loadCurrent_2.append(float(point[2]))
                surfaceTemp_2.append(float(point[3]))
    if read==3:
        if line!='\n':
            point=line.split(' ')
            ambient.append(float(point[2]))
    if 'CIRCUITNAME=CIRCUIT1' in line: read=1
return  np.array(loadCurrent_1), np.array(surfaceTemp_1),np.array(loadCurrent_2),np.array(surfaceTemp_2),np.array(ambient),np.array(time_1),np.array(time_2),np.array(date_count)

a = load_ci(" 2_Horizo​​ntal_Drilling_800mm_20121221_001235.ci")    打印

但是,我无法将月份日期保存为花车因为' /'在几个月和几个月之间。我需要保存月份日期,例如' 12.05'这意味着5月12日。然后当第二天到来时,12.05'成为' 12.06'我必须通过为新的一天增加小时来相应地保存时间值。但我无法将我的日期保存为浮动值。请给我一些建议或任何其他方法来解决这个问题。

1 个答案:

答案 0 :(得分:0)

您可能希望使用日期时间,因为它可以更轻松地迭代几天等,并在日期格式之间切换:

https://docs.python.org/2/library/datetime.html

看一下可能有助于开始:

Parse date string and change format

你首先需要解析你的日期,然后你可以随心所欲地玩它们,最后把它们作为字符串或浮点数取回