В Python (2.7.6) Я пытаюсь получить списки из некоторых столбцов файла CSV. Учитывая CSV файл test.csv
с содержанием:не удалось выполнить итерацию через csv DictReader более одного раза
COL_ONE,COL_TWO,COL_THREE
val_R1C1,val_R1C2,val_R1C3
val_R2C1,val_R2C2,val_R2C3
val_R3C1,val_R3C2,val_R3C3
val_R4C1,val_R4C2,val_R4C3
я ожидаю следующий код, чтобы сделать это для меня:
import csv
reader = csv.DictReader(open("test.csv", "r"))
col2 = list(c2['COL_TWO'] for c2 in reader)
col3 = list(c3['COL_THREE'] for c3 in reader)
К сожалению, когда я печатаю эти два списка, col2 и col3, второй список пусто.
['val_R1C2', 'val_R2C2', 'val_R3C2', 'val_R4C2']
[]
Эта альтернатива имеет один и тот же результат:
reader = csv.DictReader(open("test.csv", "r"))
col2 = []
for c2 in reader:
col2.append(c2['COL_TWO'])
col3 = []
for c3 in reader:
col3.append(c3['COL_THREE'])
Обходной легко:
col2 = []
col3 = []
for cval in reader:
col2.append(cval['COL_TWO'])
col3.append(cval['COL_THREE'])
я получаю то, что я ожидал бы в двух предыдущих примерах:
['val_R1C2', 'val_R2C2', 'val_R3C2', 'val_R4C2']
['val_R1C3', 'val_R2C3', 'val_R3C3', 'val_R4C3']
Я бы предпочел помогите понять, что я делаю неправильно. Почему я не получаю одинаковых результатов во всех трех случаях?
http://stackoverflow.com/questions/431752/python-csv-reader-how-do-i-return-to- the-top-of-the-file –