在行中追加新元素并保存 CSV [python]

Append new element in row and save CSV [python]

我有一个如下所示的 csv:

nom_ele_title,nom_ele_type,nom_ele_parent_id
Aspirateur,2,PLACARDS
COIN CUISINE,1,None
Plaques vitro,2,EQUIPEMENTS
Micro-ondes,2,EQUIPEMENTS
USTENSILES
Tabourets bar x 3
Horloge
Pack vaisselle
Pack verrerie

我希望当元素没有“nom_ele_type”是“nom_ele_parent_id”时,为“nom_ele_type”添加 1,为“nom_ele_parent_id”添加 Yes这个:

nom_ele_title,nom_ele_type,nom_ele_parent_id
Aspirateur,2,PLACARDS
COIN CUISINE,1,None
Plaques vitro,2,EQUIPEMENTS
Micro-ondes,2,EQUIPEMENTS
USTENSILES,1,Yes
Tabourets bar x 3,1,Yes
Horloge,1,Yes
Pack vaisselle,1,Yes
Pack verrerie,1,Yes

我认为可以这样做:

with open("./missed.csv") as f:
    reader = csv.reader(f)
    for row in reader:
        if len(row) == 1:
            row.append('1')
            row.append('Yes')

但未保存 csv...

要保存更改的 CSV 数据,您需要创建一个 CSV 编写器并将行明确写入其中。

尝试:

import csv

with open("missed.csv", "r") as fin, open("out.csv", "w", newline='') as fout:
    reader = csv.reader(fin)
    writer = csv.writer(fout) # added
    for row in reader:
        if len(row) == 1:
            row.append('1')
            row.append('Yes')
        writer.writerow(row) # added

输出:

nom_ele_title,nom_ele_type,nom_ele_parent_id
Aspirateur,2,PLACARDS
COIN CUISINE,1,None
Plaques vitro,2,EQUIPEMENTS
Micro-ondes,2,EQUIPEMENTS
USTENSILES,1,Yes
Tabourets bar x 3,1,Yes
Horloge,1,Yes
Pack vaisselle,1,Yes
Pack verrerie,1,Yes