Appending data to csv file

橙三吉。 提交于 2021-02-11 18:18:29

问题


I am trying to append 2 data sets to my csv file. Below is my code. The code runs but my data gets appended below a set of data in the first column (i.e. col[0]). I would however like to append my data sets in separate columns at the end of file. Could I please get advice on how I might be able to do this? Thanks.

import csv

Trial = open ('Trial_test.csv', 'rt', newline = '')
reader = csv.reader(Trial)

Trial_New = open ('Trial_test.csv', 'a', newline = '')
writer = csv.writer(Trial_New, delimiter = ',')

Cortex = []
Liver = []

for col in reader:
    Cortex_Diff = float(col[14])
    Liver_Diff = float(col[17])
    Cortex.append(Cortex_Diff)
    Liver.append(Liver_Diff)
Avg_diff_Cortex = sum(Cortex)/len(Cortex)
Data1 = str(Avg_diff_Cortex)
Avg_diff_Liver = sum(Liver)/len(Liver)
Data2 = str(Avg_diff_Liver)
writer.writerows(Data1 + Data2)


Trial.close()
Trial_New.close()

回答1:


I think I see what you are trying to do. I won't try to rewrite your function entirely for you, but here's a tip: assuming you are dealing with a manageable size of dataset, try reading your entire CSV into memory as a list of lists (or list of tuples), then perform your calculations on the values on this object, then write the python object back out to the new CSV in a separate block of code. You may find this article or this one of use. Naturally the official documentation should be helpful too.

Also, I would suggest using different files for input and output to make your life easier.

For example:

import csv
data = []
with open('Trial_test.csv', 'rb') as csvfile:
   reader = csv.reader(csvfile, delimiter=' ', quotechar='|')
   for row in reader:
       data.append(row)

# now do your calculations on the 'data' object.

with open('Trial_test_new.csv', 'wb') as csvfile:
   writer = csv.writer(csvfile, delimiter=' ', quotechar='|')
   for row in data:
       writer.writerow(row)

Something like that, anyway!



来源:https://stackoverflow.com/questions/22111416/appending-data-to-csv-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!