Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2011 18:46:43

sashog
От:
Зарегистрирован: 2011-07-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Отбор строк в файле. Help! (

Привет)
У меня есть файл с именем info.txt . Вот примерное содержимое этого файла (описываю его формат):

—–
Время: 12:00
Событие: Перехвачена радиограмма внеземного разума

Время:10:29
Событие: НЛО вылетело из Аризоны

Время: 02:00 AM
Событие: Тараканы разбежались :D
—-


Вот такой формат.. Значит алгоритм такой: Мне нужно взять случайное число ran = random.randint(0, len(f.readline()))
и это число - случайный индекс строки ф файле info.txt

потом нужно проверить условие Если первая буква строки = “В” -> то это нужная строки и надо ее распечатать (имеется ввиду строка начинающаяся с “Время”),
если это оказалась строка, первая буква которой НЕ “В” -> то это ненужная строка, и надо попытаться найти близлижайшую строку начинающуюся на “В”. Как вы можете увидеть… от “В” до другой “В” расстояние составляет 3 строки..

Нуен код)) help!



Офлайн

#2 Июль 12, 2011 23:07:05

kachayev
От:
Зарегистрирован: 2011-07-08
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Отбор строк в файле. Help! (

очень странное у вас задание…
а нельзя просто отфильтровать все строки “Время:…” и выбрать случайное?

print random.choice([line.strip() for line in open('info.txt') if line.startswith('Время')])



Офлайн

#3 Июль 12, 2011 23:22:54

Mentally_retarded
От:
Зарегистрирован: 2011-07-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Отбор строк в файле. Help! (

Если формат файла не меняется, то можно наверное и так:

import random
f=open('info.txt')
lines=[]
for line in f.readlines():
lines.append(line)
n=random.randint(0,len(lines))
k=n%3
if (k==1):
print lines[n]
elif (k==0): print lines[n-2]
else: print lines[n-1]
P.S. сильно не бейте - третий день с питоном



Офлайн

#4 Июль 13, 2011 12:33:58

kublo
От:
Зарегистрирован: 2011-04-08
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Отбор строк в файле. Help! (

А если проще:

n = random.randrange(0, len(lines), 3)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version