使用Python更新CSV文件

0 投票
3 回答
3407 浏览
提问于 2025-04-16 16:31

我正在做一个小项目,其中有一步是将一组数据写入一个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

分隔符引号字符最好选择不同的

根据我对问题的理解,目的是在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')
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() 
5

也许可以试着以追加模式打开文件?

file_p = open(file_path, "ab")

撰写回答