使用python更新csv文件

时间:2011-04-27 17:09:21

标签: python csv io

我正在开发一个小项目,其中一个步骤是在csv文件上写入数据列表。 我循环遍历列表,并获取特定数据并将其写入csv。 问题是当处理写操作时,它会删除csv文件的先前条目。我的csv编写方法如下: 和一个例子

def csv_writer(data_list,file_path):
    import csv
    file_p = open(file_path, "wb")
    write_pattern = csv.writer(file_p, delimiter=",", quotechar=",")
    write_pattern.writerow(data_list)
    file_p.close() 

示例数据列表是:

data_list = ['a', '', 'a', 'a', 'd', 'e']

我正在尝试将文件中的数据设置如下:

a,,a,d,e
a,b,c,d,e
a,g.j,l,m

提前致谢。

3 个答案:

答案 0 :(得分:5)

也许以附加模式打开文件?

file_p = open(file_path, "ab")

答案 1 :(得分:0)

当您打开文件时,请尝试将其打开以进行追加,如下所示。

def csv_writer(data_list,file_path):
    import csv
    file_p = open(file_path, "a")
    write_pattern = csv.writer(file_p, delimiter=",", quotechar=",")
    write_pattern.writerow(data_list)
    file_p.close() 

答案 2 :(得分:0)

分隔符 quotechar 最好选择不同的

正如我所理解的那样,目的是在CSV文件的所有内容之前插入一个新行。这是执行此操作的代码:

import csv

def csv_writer(data_list,file_path):
    file_p = open(file_path, "rb+")
    reader_pattern = csv.reader(file_p, delimiter=",", quotechar="$")
    write_pattern = csv.writer(file_p, delimiter=",", quotechar="$")

    content = list(reader_pattern)

    file_p.seek(0,0)
    write_pattern.writerow(data_list)
    write_pattern.writerows(content)
    file_p.truncate()
    file_p.close()


data_list = ['a', '', 'a', 'a', 'd', 'e']


csv_writer(data_list,'Copie de zozou.txt')