Вам просто нужно проанализировать весь файл 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. Это избавит от необходимости заново изобретать много колес.