写入只有一个标题行的CSV文件



我目前正在处理多个文件,并希望写入csv。我在for循环中打开它们,并根据文件中的信息进行计算。我想把所有这些数据写入一个csv文件。

我的for循环中有以下代码:

header = ['cost', 'tax', 'percentage_of_pay']
data = [price, taxes, pay_percentage]
with open('Sales-and-cost.csv', 'a+') as f:
writer=csv.writer(f, delimiter='t', lineterminator='n')
writer.writerow([header])
writer.writerow([data])

然而,它在每次运行文件时都会将头信息放进去,看起来像这样:

支付百分比支付百分比
成本税收
--------------------------
成本percentage_of_pay
------------------------
成本
------------------------

您的代码有两个问题,第一个问题是data是一个列表,但您将其包含在另一个列表中,即[header][['cost', 'tax', 'percentage_of_pay']]相同,后者是一个清单列表。

第二,你通常会先写标题,然后在循环中写数据,每个数据行一个

你可能想要这样的东西:

with open('Sales-and-cost.csv', 'w') as f:
writer=csv.writer(f, delimiter='t', lineterminator='n')
writer.writerow(header)

for row in rows:
writer.writerow(row)

其中,行是包含输出数据的列表列表,即

rows = [[price_1, taxes_1, pay_percentage_1],[price_2, taxes_2, pay_percentage_2],[price_3, taxes_3, pay_percentage_3]]

相关内容

  • 没有找到相关文章

最新更新