如何使用python将一些csv文件列复制到另一个csv文件中?

时间:2014-03-07 15:28:33

标签: python csv

我有一个10列的csv文件,我想将第一个,第三个,第七个或另一组列复制到一个新的csv文件中。你能帮助我吗? 我有这个代码,但我无法对其进行转换以满足我的需求。

<code>
def selection( fr=sys.stdin, fw=sys.stdout, delim=';'):
    my_reader = csv.reader(fr, delimiter=delim)
    my_writer = csv.writer(fw, delimiter=delim)
    to_write = [ col for col in zip(*my_reader) if col[0] == 'Nb_doc' ]
    my_writer.writerows(zip(*to_write))
    return
</code>

此代码仅复制名为&#39; nb_doc&#39;的列。

2 个答案:

答案 0 :(得分:0)

也许你可以有一个你想要选择的字段名称列表,并检查列的第一个元素是否在那里:

fields = ["Nb_doc", "SomeOtherField1", "SomeOtherField2"]

然后,你的列表理解可能只需要看起来像这样:

to_write = [ col for col in zip(*my_reader) if col[0] in fields ]

答案 1 :(得分:0)

以下内容仅复制第一,第三和第七列:

colNums = [0, 2, 6]
to_write = [ col for i, col in enumerate(zip(*my_reader)) if i in colNums ]