Найти - Пользователи
Полная версия: [РЕШЕНО] Чтение неизвестного диапазона строк или символов из файла
Начало » Python для новичков » [РЕШЕНО] Чтение неизвестного диапазона строк или символов из файла
1
de_joker
Всем здравствуйте!
В Python я новичок, поэтому прошу небольшой помощи.
Необходимо найти нужный год в файле и вывести всё, что ниже под ним написано, до следующего года.

Вот код программы:
#-*- coding: utf-8 -*-   
god = str(raw_input ("Введите год. ")) # Вводим год
f = open('./Years/years.txt') # Открываем файл
if 'y'+ god in f.read(): # Если дата найдена, то надо как-то вывести
	print ("Найден")		# строки от найденной даты, до следующей
	f.close()
else:
	print ("Не найден")
	f.close()

Вот содержимое файла:
y2012
y2011
y1994
y1993
y1992
бла бла бла бла бла бла бла
бла бла бла бла бла бла бла бла
бла бла бла бла бла бла бла бла
y1991
y1990
odnochlen
#-*- coding: utf-8 -*-   
god = "y" + str(raw_input ("Введите год. ")) # Вводим год
f = file('./Years/years.txt'): # Открываем файл
for line in f:
    if line == god:
        print ("Найден")
        break
for line in f:
    if line.sstartswith('y'): break
    print line
Как-то так.
de_joker
Нет. Не выходит. Я думаю, что не так нужно делать.

А можно сделать так, например, выводить строки до тех пор пока не встретится ‘y1991’?

Есть что ни-будь в Python наподобии:
Do
line = str.ReadLine()
Loop Until str.ReadLine()=str(y)
print line
s0rg
#!/usr/bin/env python
#-*- coding: utf8 -*-

year = raw_input("Введите год: ")

with open('./years.txt') as fd:
for ln in fd:
ln = ln.strip()
if ln.startswith('y'):
if ln.endswith(year):
do_print = True
continue
do_print = False
if do_print:
print ln
odnochlen
Почему у вас синтаксис не посдвечивается?
de_joker
Во! Спасибо! Заработало))
de_joker
odnochlen

Обычный тег значит.
[code - без подсветки.
[code python - с подсветкой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB