#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