写入错误时:csv不支持的操作数类型为+:' float'和' str'

时间:2018-02-25 13:11:09

标签: python python-3.x csv

我是python的新手。我必须将数据写入csv file,但它会给出错误

  

不支持的操作数类型+:' float'和' str'

with open('Csvc1s.csv', "wb") as file:         
    file.write("Time, Total_network\'s_Belief, Total_network\'s_Disbelief, Total_network\'s_Uncertainty")
    file.write('\n')
    list1 = [float(i) for i in timeVar]
    list2 = [float(i) for i in beliefVar]
    list3 = [float(i) for i in disbelVar]
    list4 = [float(i) for i in uncerVar]

    for x in range(0,list1Len):
         textToWrite = (list1[x]) +  "," + (list2[x]) + "," + (list3[x]) + "," + (list4[x])
         file.write(textToWrite.rstrip())
         file.write('\n')

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在尝试创建CSV文件时,通常的方法是使用Python的CSV库。这正确地处理将数据列表转换为文件中正确分隔的行:

import csv

with open('Csvc1s.csv', 'w', newline='') as f_output:         
    csv_output = csv.writer(f_output)
    csv_output.writerow(["Time", "Total_network's_Belief", "Total_network's_Disbelief", "Total_network's_Uncertainty"])
    csv_output.writerows(zip(timeVar, beliefVar, disbelVar, uncerVar))

zip()用于将多个列表组合在一起,使得每次迭代时,每个列表中的下一个元素作为列表返回(即,在这种情况下是整行)。 writerows()获取行列表,并在写入文件时自动在每个条目和每行,之间添加必要的\n

请注意,这假设您的四个数据列表都具有相同的长度。