删除python中选定的csv列

use*_*610 1 python csv

我有一个包含以下字符串的变量:

fruit_wanted = 'banana,apple'
Run Code Online (Sandbox Code Playgroud)

我也有一个csv文件

fruit,'orange','grape','banana','mango','apple','strawberry'
number,1,2,3,4,5,6
value,3,2,2,4,2,1
price,3,2,1,2,3,4
Run Code Online (Sandbox Code Playgroud)

现在如何删除'fruit_wanted'变量中未列出'fruit'的列?

所以outfile看起来像

fruit,'banana','apple'
number,3,5
value,2,2
price,1,3
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mar*_*ers 6

使用DictReader()该类读取csv文件,并忽略您不想要的列:

fruit_wanted = ['fruit'] + ["'%s'" % f for f in fruit_wanted.split(',')]
outfile = csv.DictWriter(open(outputfile, 'wb'), fieldnames=fruit_wanted)
fruit_wanted = set(fruit_wanted)

for row in csv.DictReader(open(inputfile, 'rb')):
    row = {k: row[k] for k in row if k in fruit_wanted}
    outfile.writerow(row)
Run Code Online (Sandbox Code Playgroud)