0

我有 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:我知道我没有阅读列表中的简历,我现在在哪里。

PS2:我仍然没有攻击平均计算,因为我无法正确读取数据库。

4

0 回答 0