将 CSV 文件的选定列保存在新的 CSV 文件中

Save selected columns of a CSV file in a new CSV file

我有一个包含 10 列的 CSV 文件 input.csv

col0, col1, col2, ..., col9

我只想按以下特定顺序复制特定列:

col0,col5,col4,col7 

进入一个新的 CSV 文件 output.csv。我怎样才能在 Python 中做到这一点?

标准库附带一个 csv 模块,用于读取和写入 CSV 文件。使用 itertools.imap()operator.itemgetter() 对于 select 所需的输入列来说是微不足道的,并将结果输入输出文件:

#!/usr/bin/env python
from __future__ import absolute_import, division, print_function
import csv
from itertools import imap
from operator import itemgetter


def main():
    delimiter = ','
    with open('input.csv', 'rb') as input_file:
        reader = csv.reader(input_file, delimiter=delimiter)
        with open('output.csv', 'wb') as output_file:
            writer = csv.writer(output_file, delimiter=delimiter)
            writer.writerows(imap(itemgetter(0, 5, 4, 7), reader))


if __name__ == '__main__':
    main()

BlackJack 的响应是要走的路,使用 csv 模块,因为您知道要输出的字段的索引,您可以使用命令行输出重定向引用和打印它们以将它们保存到执行脚本时的文件 python process_csv.py > output.csv

import csv
f = open(filename, 'rt')
reader = csv.reader(f,delimiter=',')
for row in reader:
    print row[0] + "," + row[5] + "," + row[4] + "," + row[7]