我有mysql数据库,其中存储了许多任务,包括持续时间,开始时间和其他领域。
结构或多或少像:
taskId | taskName | startTime | duration | server...
对我来说真正重要的是接受任务,将每个任务的所有持续时间放在以taskName开头的每个任务的不同列中,并在最后一行存储该持续时间的平均值,或平均值的公式,我不确定什么会更好。
我是脚本中的新手,所以我一直在处理python中的csv.readers。我的想法是为每个任务进行不同的查询并将它们写入列。然后阅读csv,进行新查询并附加新数据。我不认为这是最好的方式,但我不知道我怎么办。
我告诉你我拥有的东西,但请随意给出新的更好的方法:):
fp = open ("priors.csv","w") file = csv.writer(fp)
cur = con.cursor()
cur.execute("SELECT duration FROM table WHERE jobname = 'one_task'")
rows=cur.fetchall()
file.writerow('one_task')
file.writerows(rows)
fp.close()
######################################################################################
cur.execute("SELECT duration FROM table WHERE jobname = 'different_task ")
rows_to_write=cur.fetchall()
fprd = open ("priors.csv","rb")
file_rd = csv.reader(fprd)
file_rd_ls = []
for row in file_rd:
print row
file_rd_ls.append(row)
fprd.close()
fp = open ("priors.csv","w")
file_wr = csv.writer(fp)
count = 1
r_t_w_len = len(rows_to_write)
fl_rd_len = len(file_rd_ls)
result_list = list(rows_to_write)
dumm_string = ""
if r_t_w_len > fl_rd_len:
for i in range(fl_rd_len):
dumm_string = row + ',' + str(rows_to_write[count])
result_list.insert(count, dumm_string)
count+=1
while count <= (r_t_w_len + 1):
dumm_string = '""' + ',' + str(rows_to_write[count])
result_list.insert(count, dumm_string)
else:
for i in range(fl_rd_len):
if count <= (r_t_w_len + 1):
dumm_string = row + ',' + str(rows_to_write[count])
result_list.insert(count, dumm_string)
count+=1
else:
result_list.insert(count, row)
rows_to_write = tuple(result_list)
file_rd.writerows()
fp.close()
如你所见,任务的名称没有计算,所以我不能只是做一个循环并接受它们。我只是从两个第一个任务开始,但有超过100个不同的任务。
PS:我知道我没有把cvs读到列表中,我现在在哪里。
PS2:我仍然没有攻击平均计算,因为我无法正确读取数据库。