为什么Python不';t保存csv结果

为什么Python不';t保存csv结果,python,csv,Python,Csv,我不明白为什么Python不能正确地保存结果,而它却正确地打印结果。代码如下所示: import csv with open("dataset_1.csv", "r") as WBI: data = csv.reader(WBI, delimiter = ";") data = list(data) header = data[0] data = data[1:] WaterBandIndex = [] for row in data: WaterBandIndex

我不明白为什么Python不能正确地保存结果,而它却正确地打印结果。代码如下所示:

import csv

with open("dataset_1.csv", "r") as WBI:
    data = csv.reader(WBI, delimiter = ";")
    data = list(data)

header = data[0]
data = data[1:]
WaterBandIndex = []

for row in data:
    WaterBandIndex.append(float(row[54])/float(row[83]))

print (WaterBandIndex)

with open("WBI.csv", "w+") as WBI:
    csvwriter = csv.writer(WaterBandIndex, delimiter = "|", lineterminator = "\n")
    csvwriter.writerows(WaterBandIndex)
打印的结果是正确的,但不保存为csv。
我是编程新手。

如果变量
WaterBandIndex
不是空的,代码应该可以工作

import csv
WaterBandIndex = ['1','2','3']

with open("WBI.csv", "w") as f:
    csvwriter = csv.writer(f , delimiter = "|", lineterminator = "\n")
    csvwriter.writerows(WaterBandIndex)

您正在使用
WaterBandIndex
作为文件名和数据?请参阅不应该是
csvwriter=csv。writer(WBI,
“w+”
是错误的文件模式。请使用
“w”
。我已经测试了@SpghttCd advice。它在最后一行返回预期的错误序列。如果您收到错误,您应该将其与完整的回溯一起发布。WaterBandIndex不是空的。我可以在“print WaterBandIndex”行中打印它包含的正确数据。如果您的列表结构与上面的相同,它应该和你的一起工作。你可以测试它,让我知道它是否适合你。