首页 > 解决方案 > Python csv 读写,(只写保存最后一行)

问题描述

我现在有点卡住了,我有下面的脚本,它从供应商那里打开一个 csv 并生成一个正确的 csv 以便在我的系统中导入。但是,它只保存 veleman64993.csv 给出的最后一行。

我想将“开放”保持在任何事物之外,以及“记录在案”:


import csv
import io
filename = "Vellemantest.csv"
headers = "ID, Verkooprijs, \n"
f = io.open(filename, "w", encoding="utf-8")
f.write(str(headers))

#resultaten opslaan in een record.
records = []

#De resultaten uit de feed halen en verwerken
with open('Velleman64993.csv', 'r') as file:
    reader = csv.reader(file, delimiter = ';')
    for row in reader:
        artikel = (row[0])
        prijs = (row[4])
        #Standaard een basis array
    if artikel:
        records.append((artikel, prijs))

for record in records:
        #Schrijf de resultaten naar de csv file
    f.write(str(record[0]) + ", " + str(record[1]) + "\n")
    print(row[0] , row[4])
f.close()

if f.close:
    print('CSV opgeslagen')
else:
    print('Er is een fout opgetreden met het opslaan')   

标签: python-3.x

解决方案


当您在没有“a”选项的情况下打开时,write 函数会覆盖。做这样的事情,

f = io.open(filename, "a", encoding="utf-8") # not "w"

推荐阅读