Как заменить первое вхождение строки в строке при написании строки - PullRequest
0 голосов
/ 01 ноября 2019

Я вытягиваю строки из файла большего размера, которые соответствуют определенным критериям, и записываю их в новый файл. Мне нужно заменить первое вхождение ":" на ": |"в каждой строке.

Я не знал, что мне нужно было сделать это, когда я писал свой первый скрипт на Python (3.8), чтобы вывести строки, которые представляют собой этот успешный код:

with open('path/freakinginput.txt', 'r') as i, open('path/freakingoutput.txt', 'w') as o:
     for line in i:
        if (line.find('RQSTSVCS') != -1):
             o.write(line)

Как и следовало ожидать,в результате получается файл со всеми строками, которые содержат строку RQSTSVCS, и создается аккуратная таблица.

Я подумал, что могу просто сделать:

with open('path/freakinginput.txt', 'r') as i, open('path/freakingoutput.txt', 'w') as o:
    for line in i:
        if (line.find('RQSTSVCS') != -1):
            o.write(line.replace(':',':|',1))

Когда я это делаю, ничего не происходитКстати, но я в растерянности. Я пробовал разные способы определения линии, например:

o.write(line).replace(':',':|',1)

, который все еще не работает.

Я не получаю никаких ошибок. Python просто не пишет вывод.

Пожалуйста, будьте осторожны. Я чертовски хорош в написании сценариев на C ++, но я действительно новичок в Python и был брошен в глубокий конец проекта. Спасибо всем заранее.

1 Ответ

0 голосов
/ 01 ноября 2019

y'all!

Я не знаю, почему я раньше не думал о загрузке редактора, но я поместил свой код в PyCharm, и я смог определить правильное расположение * 1003. * метод. Это правильный код:

with open('path/freakinginput.txt', 'r') as i, open('path/freakingoutput.txt', 'w') as o:
    for line in i:
        if line.find('RQSTSVCS') != -1:
            o.write(line.replace(':', ':|', 1))

Я очень благодарен за ваш вклад и ценю вас! Tobey

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...