如何将"For"循环导出到csv文件?



我有一个示例代码:

fruits = 'apple', 'banana', 'kiwi'
veggies = 'corn','lettuce', 'spinach'
for x, y in zip(fruits,veggies):
print(f' combo: {x}, {y}')

我正在尝试导出这个"for"循环到CSV文件,但没有成功。输出如下所示:

combo: apple, corn
combo: banana, lettuce
combo: kiwi, spinach

我能得到一些关于如何导出到CSV的指导吗?

必须在第一列和第二列之间使用分隔符。具体来说,您需要将每一行更改为combo:,,而不仅仅是combo:。可以通过在print语句中插入逗号来解决这个问题:

print(f"combo:, {x}, {y}")

最后,要将其导出为CSV文件,您需要获得一个文件指针并对其进行写入。如果您计划创建一个新的CSV文件,您可以类似于以下操作(将所有数据合并为一个字符串,然后将其写入文件):

fruits = ['apple', 'banana', 'kiwi']
veggies = ['corn', 'lettuce', 'spinach']
# Make a new string to put all the data in
file_data = ""
for x, y in zip(fruits, veggies):
file_data += f"combo:, {x}, {y}n"
# Make a new file
with open("test_file.csv", "w") as f:
# Write to the file
f.write(file_data)

CSV字段是简单的txt文件,所以您可以这样做:

...
with open("shop.csv", "w") as fout: #<-- added this
fout.write("fruits,veggiesn")  #<-- added this
for x, y in zip(fruits,veggies):
fout.write(f'{x},{y}n')  #<-- added this

运行代码后,您将发现一个名为shop.csv的新csv文件,它有两列:fruitsveggies

您可以将输出保存在列表中,然后在for循环结束时将该列表写入CSV文件中。下面是我要做的:

import csv
fruits = 'apple', 'banana', 'kiwi'
veggies = 'corn','lettuce', 'spinach'
combos = []
for x, y in zip(fruits,veggies):
combos.append([x,y])
csv_file = "combos.csv"
try:
with open(csv_file, 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(combos)
except IOError:
print("I/O error")

最新更新