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

2024-06-16 08:46:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个示例代码:

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的指导吗


Tags: csv代码in示例appleforzipbanana
3条回答

CSV文件只是txt文件,因此您可以执行以下操作:

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

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

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

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)

您可以将输出保存在列表中,然后在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")

相关问题 更多 >