用Python读写CSV

时间:2018-04-02 19:04:58

标签: python python-2.7 csv

我有这个名为 task2.csv 的CSV。标题为:描述。 我正在尝试使用以下csv python脚本将" i", " ink"添加到此csv。但它添加到错误的列并修改最后一个字段。 请帮助我让我的脚本从一个全新的行开始。

我尝试过的事情:

  • 使用指向新行的指针保存csv
  • 写了两次(第二次写入函数被称为正常工作。第一次写入仍修改最后一行,但第二次写入写入新行。
  • 检查堆栈溢出并根据一些建议修改(使用dictReader和dictWriter)仍然无法正常工作

我的代码:

import csv

def readCsv(file):
    dict = {}
    with open(file) as csvdata:
        csvReader = csv.DictReader(csvdata)
        for row in csvReader:
            print row['item'], row['description']

def writeCsv(file, field):
    fieldnames = ['item', 'description']
    with open(file, 'a') as f:
        writer = csv.DictWriter(f, fieldnames=fieldnames)
        writer.writerow({'item': 'i', 'description': 'ink'})

writeCsv("task2.csv", "a")
readCsv("task2.csv")

ORGINAL CSV:

enter image description here

MODIFIED CSV:

enter image description here

1 个答案:

答案 0 :(得分:1)

我可以重现这个问题。

原因:您的CSV最后一行未完成;最后一行以' new line`字符结束,即\ n

并且在更安全的侧面writer = csv.DictWriter(f, fieldnames=fieldnames)

  

writer = csv.DictWriter(f, fieldnames=fieldnames, lineterminator="\n")

在记事本中打开csv,在hati之后按输入保存

然后运行程序,它应该解决问题。