繁体   English   中英

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

[英]How do I add a new column of data to a csv file

我正在将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文件。 如何为此数据添加额外的列?

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

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

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

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

简答:在您喜欢的编辑器中打开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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM