индексирование определенной строки от csv читателя Python?

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

8
задан ahhh 9 July 2010 в 18:07
поделиться

1 ответ

Вам просто нужно проанализировать весь файл 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 - возможно, вам просто лучше разобрать весь файл до списка и в любом случае получить оттуда индексы:

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

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

4
ответ дан 6 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: