我必须从文件中读取数据。文件是这样的。
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_Horizontal_Drilling_800mm_20121221_001235.ci") 打印
但是,我无法将月份日期保存为花车因为' /'在几个月和几个月之间。我需要保存月份日期,例如' 12.05'这意味着5月12日。然后当第二天到来时,12.05'成为' 12.06'我必须通过为新的一天增加小时来相应地保存时间值。但我无法将我的日期保存为浮动值。请给我一些建议或任何其他方法来解决这个问题。
答案 0 :(得分:0)
您可能希望使用日期时间,因为它可以更轻松地迭代几天等,并在日期格式之间切换:
https://docs.python.org/2/library/datetime.html
看一下可能有助于开始:
Parse date string and change format
你首先需要解析你的日期,然后你可以随心所欲地玩它们,最后把它们作为字符串或浮点数取回