写入 csv 中的特定行,Python 3

Writing to a specific row in a csv, Python 3

我目前有一个结构如下的列表: x=['a,b,c,d','e,f,g,h'] 我希望将每个元素(在“”之间)写入单独的行,并将每个逗号分隔值放置在该行内的相应单元格中。

目前我的代码将列表 'x' 的全部内容添加到顶行,但我不知道如何修复它。

使用生成器理解(根据逗号分隔列表中的每个文本)作为 csv.writerows 的参数,如下所示:

import csv

x=['a,b,c,d','e,f,g,h']

with open("output.csv","w",newline="") as f:
    cw = csv.writer(f)
    cw.writerows(l.split(",") for l in x)

一段简短的 - 老实说可能不是最漂亮的 - 一段代码:

x=['a,b,c,d','e,f,g,h']
for ROWS in x:
    print("Handling row", ROWS)
    ROWS = str(ROWS)
    ROW_NEW = []
    if ROWS.count(",") > 0:
        for COLS in ROWS.split(","):
            ROW_NEW.append(COLS)
    print("Resulting row: " + str(ROW_NEW))

您可以使用 csv 模块中的 writerow() 而不是 "print"(此处有详细信息:https://docs.python.org/3.5/library/csv.html