2011-08-30 218 views
6

我有一個包含5列的CSV文件。使用Python,我如何刪除最後一列(例子中的header5)?有沒有一種簡單的方法,我錯過了,或者我必須遍歷CSV中的所有行,並從最後一列中刪除每個值(這仍然可能會留下不想要的前面的逗號)?使用Python刪除或刪除CSV文件中的最後一列使用Python

我在CSV模塊或互聯網上的其他地方沒有看到與此相關的任何內容,因此非常感謝所有幫助。

header1,header2,header3,header4,header5 
value1,value2,value3,value4,value5 
value1,value2,value3,value4,value5 

回答

12

使用csv module。當寫了一個排,使用row[:-1]砍掉最後一個項目:即使你不使用CSV模塊

import csv 

with open(filename,"r") as fin: 
    with open(outname,"w") as fout: 
     writer=csv.writer(fout) 
     for row in csv.reader(fin): 
      writer.writerow(row[:-1]) 
1

,邏輯和理智的方法是閱讀按行文件行,分裂他們的逗號,並用join打印出項目1至4。例如

for line in open("file"): 
    print ','.join(line.split(",")[:-1]) 

或只是簡單的字符串索引

for line in open("file"): 
    print line[ : line.rindex(",") ] 
+3

如果數據的最後一列恰好包含一個逗號這可能會碰到的問題。使用CSV模塊應該解決這個問題。 –