2013-10-07 4 views
0

Возможно ли сделать python только чтение выбранных строк из файла?python чтение определенных строк из CSV с использованием подсчета списков

Скажем, у меня есть файл CSV, файл разделяется tab и третий столбец либо «а», «б» или «с». Я хотел бы иметь список понимание (или генератора, не имеет значения), которые будут возвращать только те строки в файле, которые выбрали первую колонку

Следующая вызывает ошибку синтаксиса:

lines = [tmp = line.rstrip().split(separator_column) for line in source if tmp[2] == 'a'] 

Можно ли сделать это более питоническим способом, чем просто для цикла? Так называемые более питонические способы работают со скоростью C - они быстрее, чем базовые инструкции Python - вот почему я спрашиваю.

+0

Я бы сказал, что путь Pythonic является использование для цикла. Явный и очевидный. – YXD

ответ

4

Используйте csv модуль:

import csv 
with open("your/file.csv", ...) as source: 
    reader = csv.reader(source, delimiter='\t') 
    selection = [row for row in reader if row[2] == 'a'] 
Смежные вопросы