如何将新数据列添加到csv文件中

时间:2010-07-31 00:20:13

标签: python csv

我正在将csv文件读入变量data,如下所示:

def get_file(start_file): #opens original file, reads it to array
    with open(start_file,'rb') as f:
        data=list(csv.reader(f))

data是整个csv文件。如何为此数据添加额外的列?

3 个答案:

答案 0 :(得分:3)

data是字符串列表的列表,所以......:

for row, itm in zip(data, column):
  row.append(str(itm))

当然你需要column是正确的长度,所以你可能想检查一下,例如,如果len(data) != len(column)提出一个exc。

答案 1 :(得分:3)

.append data中每行末尾的值,然后使用csv.writer写入更新后的数据。

答案 2 :(得分:3)

简答:在您喜欢的编辑器中打开CSV文件并添加一列

答案很长:首先,您应该使用csv.reader来阅读文件;这会处理分割线条,格式错误的线条,带引号的逗号等所有细节。然后,将读者包装在另一个添加列的方法中。

def get_file( start_file )
    f = csv.reader( start_file )
        def data( csvfile ):
            for line in csvfile:
                 yield line + [ "your_column" ]
    return data( f )

修改

正如您在其他问题中提到的那样:

def get_file( start_file )
    f = csv.reader( start_file )
        def data( csvfile ):
            for line in csvfile:
                line[ 1 ] += "butter"
                yield line
    return data( f )
你使用的

lines = get_file( "my_file.csv" )
for line in lines:
    # do stuff