Здравствуйте. Есть .txt файл. Нужно прочитать по строкам(в выбраном диапазоне строк, например с 3 по 6).
Подскажите варианты, пожалуйста..
bad_playa
с 3 по 6
def read_dump_str(fp,start,stop): for i in xrange(stop): line = fp.readline() if i >= start-1: yield(line) with open('c:\\test.txt','rb') as f: for s in read_dump_str(f,3,6): print s
>>> import itertools >>> >>> list(itertools.islice(open('/etc/passwd'), 2, 5)) ['daemon:x:2:2:daemon:/sbin:/sbin/nologin\n', 'adm:x:3:4:adm:/var/adm:/sbin/nologin\n', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n'] >>>
Iskatelname ‘xrange’ is not defined
если нумерация с единицы и с 3 по 6 включительно, например так:
Kir@это во втором питоне, наверное в третьем просто range()
name ‘xrange’ is not defined
Kir@Секрет в том, что их все равно все читать придется - пропускай каждые две, а третью обрабатывай
А если нужно прочитать каждую третье строку?
IskatelДа не вопрос, прочитаю, еще одна ошибка:
Секрет в том, что их все равно все читать придется - пропускай каждые две, а третью обрабатывай
Kir@
AttributeError: ‘str’ object has no attribute ‘readline’
Iskatel
а что ты как fp передаешь? случайно read() перед передачей не вызвал?
import re from tkinter import* root = Tk() #Функция чтения строк def read_dump_str(fp,start,stop): for i in range(stop): line = fp.readline() if i >= start-1: yield(line) #Текст и паттерн sovlad='Совладельцы (источник: ЕГРЮЛ) <> <> <> <> <> <> <> <> <> <> <> <> <> Наименование <> Местонахождение <> Доля в УК, руб. <> Доля в УК, % <> Дата внесения в ЕГРЮЛ <> <> <> ИСКРА, ООО <> Российская Федерация, Хакасия респ., г. Абакан, ул. Советская, д. 209 <> 1 479 280 <> 28,86 <> 10.10.2008 <> <> <> Топоев Вадим Ильич <> <> 1 479 280 <> 28,86 <> 10.10.2008 <> <> <>' pattern=r'<>([А-я\s.,]*)<>([А-я\s.,\d]*)<>(?:[\d\s]*)[<>\s]*([\d]+)[<>\s]*[\d.\s,]*' #Обработка dano=re.M | re.S | re.U object = re.compile(pattern, dano) result=object.finditer( sovlad ) group_name_by_index = dict( [ (m,s,u) for m,s,u in object.groupindex.items() ] ) for match in result: for group_index, group in enumerate(match.groups()): if group: #print(group) f=group for s in read_dump_str(f,1,4): print(s)