首页 > 解决方案 > 在 CSV 中写入行的 Python 问题

问题描述

我有这个脚本可以读取 CSV 并将第二列保存到列表中,我试图让它将列表的内容写入新的 CSV。问题是每个条目都应该有自己的行,但是新文件将所有内容都设置在同一行中。

我尝试将第二个with open代码移到第一个代码中,with open并尝试在第二个代码中添加一个 for 循环,with open但无论我尝试什么,我都没有得到正确的结果。

这是代码:

import csv
col_store=[]      
with open('test-data.csv', 'r') as rf:
    reader = csv.reader(rf)
    for row in reader:
        col_store.append(row[1])
with open('meow.csv', 'wt') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerows([col_store])

标签: python-3.x

解决方案


在您的情况下,如果您有一列单个字母/数字,那么 YR 答案将起作用。

要获得适用于所有情况的代码,请使用此代码。

with open('meow.csv', 'wt') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerows(([_] for _ in col_store))

这里提到writerows期望一个可迭代的行对象。每个行对象都应该是 Writer 对象的字符串或数字的可迭代对象


推荐阅读