【问题标题】:Python csv read and write, (write only saves last row)Python csv 读写,(只写保存最后一行)
【发布时间】:2021-08-16 11:40:11
【问题描述】:

我现在有点卡住了, 我有下面的脚本,它从供应商处打开一个 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')   

【问题讨论】:

  • if artikel: records.append((artikel, prijs)) 应该在 for 循环中。目前它在它之后,所以只有一件事被添加到records 列表中。
  • 哇,这么愚蠢,但是,这么简单。 2小时我在代码上徘徊。谢谢老兄!

标签: python-3.x


【解决方案1】:

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

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

【讨论】:

  • 看起来 OP 读取和写入不同的文件。仅当输出文件已存在且其内容不应被覆盖而是扩展时才需要 'a' append 选项。
  • 确实,我从供应商处打开一个文件,并创建一个具有我自己风格和选项的新文件,然后将其导入我的系统。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多