2013-04-02 2 views
0

Попытка удалить все столбцы из файла csv, кроме 'fruit'.Удалить столбцы из результатов csv wrong

сценарий я изменил с другой пост на этом сайте

import csv 
with open("C:\\Test\\source.csv","rb") as source: 
    rdr= csv.reader(source) 
    with open("C:\\Test\\result.csv","wb") as result: 
     wtr= csv.writer(result) 
     for r in rdr: 
      wtr.writerow(r[1]) 

source.csv

ID,fruit,number,location 
0,apple,2,3 
1,banana,1,1 
2,pear,2,3 
3,grape,0,1 

результаты я получил:

f,r,u,i,t 
a,p,p,l,e 
b,a,n,a,n,a 
p,e,a,r 
g,r,a,p,e 

желаемых результатов

fruit 
apple 
banana 
pear 
grape 

Любые идеи относительно того, как избавиться от запятых? Я использую python 2.7.

ответ

3

Вы должны дать writerow() список:

wtr.writerow([r[1]]) 

writerow() ожидает последовательность, что-то заказывали. Списки представляют собой последовательности, но также являются строками; строки могут быть проиндексированы, повторены и т. д. Пройдя только r[1], вы даете .writerow() последовательность отдельных символов, каждая из которых написана как отдельный столбец.

+0

Спасибо. Я знал, что это просто. Все еще пытаясь понять, почему r [1] выводит запятые, а [r [1]] - нет. Любые ссылки, на которые вы можете указать мне, более подробно описывают эту концепцию? Не могу по-настоящему узнать, не понимаю ли я. – user12059

+1

@ user12059: Введите 'list ('somestring')' в интерпретаторе python. Или '' somestring [0] ''. –

Смежные вопросы