我有一个包含10列的CSV文件input.csv
:
col0, col1, col2, ..., col9
我想按特定顺序复制特定列:
col0,col5,col4,col7
转换为新的CSV文件output.csv
。我怎么能用Python做到这一点?
答案 0 :(得分:1)
标准库附带一个csv
模块,用于读取和写入CSV文件。使用itertools.imap()
和operator.itemgetter()
可以轻松地从输入中选择所需的列并将结果输入到输出文件中:
#!/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()
答案 1 :(得分:1)
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]