Python将整个列添加到csv文件中,而不读取文件内容

时间:2019-05-29 10:55:19

标签: python file csv

我需要使用Python将列添加到csv文件中。我能想到的唯一方法是读取整个文件,编辑每一行以添加1个元素,然后再次写入文件。但是,由于文件的大小,我真的不想这样做(超过32000行,每次我想添加一列时,似乎都进行了大量的读写操作)。即使使用csv模块,我也认为原理是相同的,阅读所有内容,然后再次编辑和编写。

要清楚,下面是一个csv文件示例。

1,2
1,2
1,2
1,2

我想添加第三列,以便文件变为:

1,2,3
1,2,3
1,2,3
1,2,3

如果我想添加整行(或一行),则可以使用open(csvfile, 'a')并将最后一行“追加”到文件中。有添加列的类似选项吗?

2 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的。文本文件是序列文件,如果要在它们之间添加一些内容,则必须转移所有剩余的内容(因此必须读写)。

答案 1 :(得分:0)

对于原始的csv文件,请说foo.csv

1,2 
1,2
1,2
1,2

只需创建另一个文件以保存要添加的列,例如bar.csv

3
3
3
3

然后,可以使用os.system作为

从python内部调用Unix的paste命令。
import os
os.system("paste foo.csv  bar.csv -d ',' > output.csv")

结果为output.csv

1,2,3
1,2,3
1,2,3
1,2,3