Уведомления

Группа в Telegram: @pythonsu

#1 Март 15, 2010 12:23:05

Sora_Musoka
От:
Зарегистрирован: 2010-03-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Цель такова: программа ищет в файле строку которая начинается с X и выводит ее на экран, если пользователя не устраивает содержимое то он должен ее заменить.

Имеем:

x=input('Введите слово: ')
f1=open('text.txt', 'r+')
for line in f1.readlines():
if line.startswith(x):
print(line)
f1.close()
Пробовал через tell(), но не вышло.

Подайте кода, кто сколько сможет :)



Отредактировано (Март 15, 2010 12:23:38)

Офлайн

#2 Март 15, 2010 12:36:06

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Считайте содержимое файла в список строк, и в нем заменяйте элементы. А на выходе сбрасывайте список обратно в файл.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано (Март 15, 2010 12:36:37)

Офлайн

#3 Март 15, 2010 12:47:15

Sora_Musoka
От:
Зарегистрирован: 2010-03-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

В файле свыше 20к строк :(

Я предполагал что есть способ вычисления номера строки, в которой программа находит Х. Номер строки запоминается и при надобности программа вернется именно к ней, ну а там необходимые манипуляции. И вот как раз номер вычислить не могу



Офлайн

#4 Март 15, 2010 13:02:46

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Sora_Musoka
В файле свыше 20к строк
Ну это до пяти мегабайт, не так уж и много, чтоб считать в память.
Sora_Musoka
ну а там необходимые манипуляции
Прямо с текстовым файлом вы никакие манипуляции все равно делать не сможете.



Офлайн

#5 Март 15, 2010 13:04:52

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

x=input('Введите слово: ')
with open('text.txt', 'r+') as f1:
for number, line in enumerate(f1.readlines()):
if line.startswith(x):
print(number, line)



Отредактировано (Март 15, 2010 13:05:11)

Офлайн

#6 Март 15, 2010 13:43:23

Sora_Musoka
От:
Зарегистрирован: 2010-03-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Идеально, спасибо :)



Офлайн

#7 Март 15, 2010 13:49:50

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Рано радуетесь, вам еще в файл сохранять ;)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Март 16, 2010 01:24:48

Sora_Musoka
От:
Зарегистрирован: 2010-03-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

да, действительно.

Решил сделать списком, возник вопрос: как найти элемент списка если знаешь лишь его часть?

Пример:
Элемент в списке: Python: Массивы и списки
Ввод с клавы: python
Прога выдает: Python: Массивы и списки

PS: если нет шансов, то возможно надо переделать в Словарь, пользователь будет искать только первое слово в строке. Вообще нужен ваш совет



Отредактировано (Март 16, 2010 01:48:02)

Офлайн

#9 Март 16, 2010 06:26:59

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Пройти по всем элементам списка и посмотреть с чего они там начинаются. Это долго, но других вариантов нет, по моему. Еще из индийского:
Список в строку, потом find(), запомнить где нашлось, обратно в список и все. Номер элемента уже известен.
Но это уже шуточки…



Офлайн

#10 Март 17, 2010 12:34:46

Sora_Musoka
От:
Зарегистрирован: 2010-03-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с поиском-заменой строки

Все сделал, возник вопросик:

как мне закрепить событие на “закрытие программы”? или выполнить его перед закрытием?

в TKinter

UPDATE:

Решение найдено, программа написано. Всем спасибо



Отредактировано (Март 17, 2010 13:09:05)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version