【问题标题】:Delete or remove last column in CSV file using Python使用 Python 删除或删除 CSV 文件中的最后一列
【发布时间】:2011-08-30 15:29:56
【问题描述】:

我有一个包含 5 列的 CSV 文件。使用 Python,如何删除最后一列(示例中的 header5)?有没有我遗漏的简单方法,还是我必须遍历 CSV 中的所有行并从最后一列中删除每个值(这仍然可能给我留下不希望的逗号)?

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

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

【问题讨论】:

    标签: python csv


    【解决方案1】:

    使用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])
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 如果最后一列数据恰好包含逗号,这可能会遇到问题。使用 CSV 模块应该可以解决这个问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 2019-03-21
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      相关资源
      最近更新 更多