将 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]
我有一个包含 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]