Печать первых двух строк csv-файла в стандартный вывод

#python

#python

Вопрос:

Я хотел бы распечатать (стандартный вывод) первые две строки csv-файла:

 #!/usr/bin/env python
import csv
afile = open('<directory>/*.csv', 'r ')
csvReader1 = csv.reader(afile)
for row in csvReader1:
    print row[0]
    print row[1]
  

однако мой вывод с использованием этого кода выводит первые два столбца.

Есть предложения?

Ответ №1:

Вы хотите напечатать строку, но ваш код запрашивает печать первого и второго элементов каждой строки

Поскольку вы хотите распечатать всю строку — вы можете просто распечатать ее и, кроме того, прочитать только первые две

 #!/usr/bin/env python
import csv
afile = open('<directory>/*.csv', 'r ')
csvReader1 = csv.reader(afile)
for i in range(2):
    print csvReader1.next()
  

Комментарии:

1. Используется 'rb' для открытия файлов для csv в Python 2.X (см. csv.reader ).

2. Предложить next(csvReader1) (работает как в Python 2.X, так и в 3.X).

Ответ №2:

Как правило, вы можете ограничить итераторы с itertools.islice помощью функции:

 import itertools
for row in itertools.islice(csvReader1, 2):
    print row
  

Или творческое использование zip() :

 for line_number, row in zip(range(2), csvReader1):
    print row
  

Ответ №3:

Вы также можете использовать enumerate

 for i, row in enumerate(csvReader1):
    if (i > 1):
        print (row)
    else:
        break