Форум сайта python.su
0
Всем здравствуйте!
В 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
Отредактировано de_joker (Сен. 2, 2012 20:39:33)
Офлайн
14
#-*- 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
Офлайн
0
Нет. Не выходит. Я думаю, что не так нужно делать.
А можно сделать так, например, выводить строки до тех пор пока не встретится ‘y1991’?
Есть что ни-будь в Python наподобии:
Do
line = str.ReadLine()
Loop Until str.ReadLine()=str(y)
print line
Отредактировано de_joker (Сен. 2, 2012 19:55:08)
Офлайн
25
#!/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
Офлайн
14
Почему у вас синтаксис не посдвечивается?
Офлайн
0
Во! Спасибо! Заработало))
Офлайн
0
odnochlen
Офлайн