Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2021 22:25:54

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

Приветствую.
Прошу показать инструмент работы с строками в питон , который может найти и заменить строку по шаблону , не учитывая полного содержимого в строке.
Нужно в файле заменить одну строку другой строкой.
Поиск заменяемой строки нужно производить используя шаблон, по той причине что заменяемая строка имеет постоянно изменяющиеся значения.

Отредактировано VIRTOK (Янв. 12, 2021 22:32:35)

Офлайн

#2 Янв. 13, 2021 01:43:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

Приведи пример замены.



Офлайн

#3 Янв. 13, 2021 09:12:30

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

VIRTOK
Поиск заменяемой строки нужно производить используя шаблон, по той причине что заменяемая строка имеет постоянно изменяющиеся значения.
ну так re ?
https://docs.python.org/3/library/re.html
https://tproger.ru/translations/regular-expression-python/



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Янв. 14, 2021 10:00:17

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

Прошу помочь и привести пример шаблона с помощью которого заменить строку.
Есть файл с SQL скриптом.

 ...
INSERT INTO Product_D VALUES ('B', 1158, DEFAULT);
COMMIT;

В конце файла есть 2 строчки которые нужно заменить
 INSERT INTO Product_D VALUES ('B', 1158, DEFAULT);
COMMIT;

Проблема в том что в середине строки
 INSERT INTO тут могут быть разные значения ;

Офлайн

#5 Янв. 14, 2021 13:28:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

VIRTOK
Прошу помочь и привести пример шаблона с помощью которого заменить строку.
Напиши, какие строки были до замены и какие стали строки после замены.

VIRTOK
В конце файла есть 2 строчки которые нужно заменить
Заменить на что?



Офлайн

#6 Янв. 14, 2021 13:46:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

py.user.next
Заменить на что?
- Фу! Ржевский, вы вообще носки меняете?
- Конечно, меняю! На водку!



Офлайн

#7 Янв. 15, 2021 09:10:40

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

VIRTOK
Проблема в том что в середине строки

INSERT INTO тут могут быть разные значения ;
тогда вам не нужно re достаточно метода строки startwith.
 in_data =['Это непонятная дичь',
          'INSERT INTO тут могут быть разные значения ;',
          'COMMIT;']
find_prefix = 'INSERT INTO'
replace_srt = 'тут может быть все что угодно;'
for string in in_data:
    if string.startswith(find_prefix):
        out_string = '{} {}'.format(find_prefix, replace_srt)
    else:
         out_string = string
    print (out_string)
>>>
Это непонятная дичь
INSERT INTO тут может быть все что угодно;
COMMIT;
>>> 



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#8 Янв. 15, 2021 10:12:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

PEHDOM
тогда вам не нужно re достаточно метода строки startwith.
Он там пишет
VIRTOK
В конце файла есть 2 строчки которые нужно заменить
То есть эти строки ещё должны в конце файла стоять. А если они в середине стоят, то не надо заменять.

Однопроходный алгоритм можно сделать по принципу скользящего окна.



Офлайн

#9 Янв. 15, 2021 13:45:40

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

py.user.next это проф.деформация , ты забываешь что имеешь дело не с “программистом” а с “пользователем” который не умеет свои мысли структурировать и выражать четко и однозначно. Я подозреваю что “В конце файла есть 2 строчки которые нужно заменить” означает не то что такие же строки есть и в середине, а то что они есть только в конце. Но я, конечно, могу и ошибаться.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 15, 2021 13:46:19)

Офлайн

#10 Янв. 15, 2021 23:49:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

Заменить строку одну строку в файле другой строкой

PEHDOM
Я подозреваю что “В конце файла есть 2 строчки которые нужно заменить” означает не то что такие же строки есть и в середине, а то что они есть только в конце. Но я, конечно, могу и ошибаться.
Не, ты ему напишешь такую программу, а он придёт потом и скажет “у меня там в середине строчки, они тоже заменяются теперь, а мне нужно, чтобы только в конце”. Так ты ему будешь писать вторую программу.

PEHDOM
это проф.деформация
Это опыт. Точно так же я у него спрашиваю “на что заменить?” не просто так. Потому что дальше он скажет “а мне надо не просто заменить, оказывается, я теперь понял, пришло типа прозрение, а мне ещё кусочки оттуда выдирать надо”. Чтобы 100500 программ ему не писать, из которых ему нужна только 100501-ая, я сначала у него всё выясняю.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version