2011-08-30 288 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模块应该解决这个问题。 –