Форум сайта python.su
Цель такова: программа ищет в файле строку которая начинается с X и выводит ее на экран, если пользователя не устраивает содержимое то он должен ее заменить.
Имеем:
x=input('Введите слово: ')
f1=open('text.txt', 'r+')
for line in f1.readlines():
if line.startswith(x):
print(line)
f1.close()
Отредактировано (Март 15, 2010 12:23:38)
Офлайн
Считайте содержимое файла в список строк, и в нем заменяйте элементы. А на выходе сбрасывайте список обратно в файл.
Отредактировано (Март 15, 2010 12:36:37)
Офлайн
В файле свыше 20к строк :(
Я предполагал что есть способ вычисления номера строки, в которой программа находит Х. Номер строки запоминается и при надобности программа вернется именно к ней, ну а там необходимые манипуляции. И вот как раз номер вычислить не могу
Офлайн
Sora_MusokaНу это до пяти мегабайт, не так уж и много, чтоб считать в память.
В файле свыше 20к строк
Sora_MusokaПрямо с текстовым файлом вы никакие манипуляции все равно делать не сможете.
ну а там необходимые манипуляции
Офлайн
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)
Офлайн
Идеально, спасибо :)
Офлайн
Рано радуетесь, вам еще в файл сохранять ;)
Офлайн
да, действительно.
Решил сделать списком, возник вопрос: как найти элемент списка если знаешь лишь его часть?
Пример:
Элемент в списке: Python: Массивы и списки
Ввод с клавы: python
Прога выдает: Python: Массивы и списки
PS: если нет шансов, то возможно надо переделать в Словарь, пользователь будет искать только первое слово в строке. Вообще нужен ваш совет
Отредактировано (Март 16, 2010 01:48:02)
Офлайн
Пройти по всем элементам списка и посмотреть с чего они там начинаются. Это долго, но других вариантов нет, по моему. Еще из индийского:
Список в строку, потом find(), запомнить где нашлось, обратно в список и все. Номер элемента уже известен.
Но это уже шуточки…
Офлайн
Все сделал, возник вопросик:
как мне закрепить событие на “закрытие программы”? или выполнить его перед закрытием?
в TKinter
UPDATE:
Решение найдено, программа написано. Всем спасибо
Отредактировано (Март 17, 2010 13:09:05)
Офлайн