2014-03-07 90 views
0

我有一個10列csv文件,我想複製第一,第三,第七或另一組列到一個新的csv文件。你可以幫我嗎? 我有這個代碼,但我不能改變它有我的需要。如何使用python將一些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> 

此代碼僅複製名爲'nb_doc'的列。

回答

0

下面將剛剛複製的第一,第三和第七列:

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

謝謝!它運作良好。 – bass

0

也許你可以有你想從選擇和檢查的字段名稱的列表,如果該列的第一個元素是在那裏:

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

然後,你的列表理解可能只需要看看像這樣:

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

謝謝爲你的答案,但我想用列號,而不是列名。任何其他想法? – bass

相關問題