使用Python删除或删除CSV文件中的最后一列

时间:2011-08-30 15:29:57

标签: python csv

我有一个包含5列的CSV文件。使用Python,我如何删除最后一列(示例中的header5)?有没有一种简单的方法我会丢失,或者我是否必须遍历CSV中的所有行并从最后一列中删除每个值(这仍然会留下不需要的前一个逗号)?

我没有在CSV模块或互联网上的其他地方看到与此相关的任何内容,因此非常感谢任何帮助。

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

2 个答案:

答案 0 :(得分:14)

使用csv module。写出一行时,使用row[:-1]来删除最后一项:

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 :(得分:1)

即使你不使用CSV模块,逻辑和理智的方法是逐行读取文件,用逗号分割它们,然后用join打印出项目1到4。例如

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

或者只是通过简单的字符串索引

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