подписать конкретную строку из читателя Python CSV? - PullRequest
8 голосов
/ 09 июля 2010

Я бы хотел иметь возможность доступа к определенным строкам файла CSV через программу чтения CSV. Например, четвертая строка. Есть ли способ сделать это с помощью модуля Python для чтения csv?

1 Ответ

4 голосов
/ 09 июля 2010

Вам просто нужно проанализировать весь файл CSV, а затем использовать обычную индексацию последовательности.

В противном случае, вы можете сделать что-то вроде этого

def my_filter(csv_file, lines):
   for line_number, line in enumerate(csv_file):
       if line_number in lines:
          yield line

my_file = open("file.csv")
my_reader = csv.reader(my_filter(my_file, (3,)))

Обратите внимание, что вы не можете избежать синтаксического анализа всего файла, так или иначе, потому что строки имеют переменную длину. Счетчик строк увеличивается только тогда, когда '\ n' найден, и его нужно искать по символам.

Кроме того, этот фильтр не будет работать, если в кавычках в файле csv присутствуют символы новой строки - возможно, вам лучше просто разобрать весь файл в списке и в любом случае извлечь индексы из него: 1008 *

my_file = open("file.csv")
my_reader = csv.reader(my_file)
my_line = list(my_reader)[3]

обновление Самое важное: если вам нужен произвольный доступ к информации, которая слишком велика, чтобы поместиться в памяти, просто подумайте о ее дампе в базу данных SQL. Это избавит от необходимости заново изобретать много колес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...