Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2012 11:18:31

Satyr
От:
Зарегистрирован: 2012-01-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

модуль csv

Добрый день.
Раньше обрабатывал csv файлы в Excel посредством VBA,
проблема возникла когда появились файлы больше миллиона строк,
сейчас пытаюсь разобраться как это сделать с помощью Питона.
Собственно сам вопрос:

Такой код выводит все строки из файла:

import csv
with open('telema.csv', 'rb') as f:
reader = csv.reader(f, delimiter=';')
for row in reader:
print row
Как сделать так, чтобы выводились не все строки, а каждая n строка?
Написать цикл или использовать какую-нибудь функцию модуля?



Отредактировано (Янв. 18, 2012 11:20:22)

Офлайн

#2 Янв. 18, 2012 14:49:11

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

модуль csv

Используйте срез с шагом в цикле что-то типа

frequency = 10

for row in reader:
print row

Офлайн

#3 Янв. 19, 2012 15:34:43

Satyr
От:
Зарегистрирован: 2012-01-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

модуль csv

Спасибо за ответ, но такой код:

import csv
frequency = 10
with open('telema.csv', 'rb') as f:
reader = csv.reader(f, delimiter=';')
for row in reader:
print row[::frequency]
дает срез по колонкам файла,
а меня интересуют строки(



Офлайн

#4 Янв. 19, 2012 16:07:33

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

модуль csv

for row in reader[::freq]:

Офлайн

#5 Янв. 20, 2012 08:29:47

Satyr
От:
Зарегистрирован: 2012-01-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

модуль csv

for row in reader[::freq]:
TypeError: '_csv.reader' object is not subscriptable



Офлайн

#6 Янв. 20, 2012 08:55:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

модуль csv

Satyr
for row in reader[::freq]:
TypeError: '_csv.reader' object is not subscriptable
import csv
with open('1.csv', 'rb') as f:
reader = csv.reader(f, delimiter=';')

for row in reader:
print row

['A1', 'B1', 'C1']
['A2', 'B2', 'C2']
['A3', 'B3', 'C3']
['A4', 'B4', 'C4']
['A5', 'B5', 'C5']
['A6', 'B6', 'C6']
['A7', 'B7', 'C7']
['A8', 'B8', 'C8']
['A9', 'B9', 'C9']
['A10', 'B10', 'C10']
['A11', 'B11', 'C11']




import csv
with open('1.csv', 'rb') as f:
reader = csv.reader(f, delimiter=';')

for row in list(reader)[::2]:
print row

['A1', 'B1', 'C1']
['A3', 'B3', 'C3']
['A5', 'B5', 'C5']
['A7', 'B7', 'C7']
['A9', 'B9', 'C9']
['A11', 'B11', 'C11']



Офлайн

#7 Янв. 20, 2012 09:06:55

Satyr
От:
Зарегистрирован: 2012-01-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

модуль csv

Спасибо за разъяснения, работает)!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version