Редактирование строки текстового файла после слова - PullRequest
0 голосов
/ 08 октября 2018

У меня есть файл свойств, и я должен редактировать его через python.Мне нужно отредактировать строку jmx.admin.pwd=SomeRandomPassword и заменить случайный пароль своим собственным паролем.Я не могу этого сделать.

Текстовый файл выглядит следующим образом:

some line
some line
some line
min.pop.password=SomeRandomNumbersWordsCharacters
some line
some line
some line

Ниже должен быть изменен вывод:

some line
some line
some line
min.pop.password=My_Password
some line
some line
some line

Любая помощь высоко ценитсякак я новичок в Python.

1 Ответ

0 голосов
/ 08 октября 2018

Что вы можете сделать, это сначала открыть файл, а затем прочитать все строки в список content, удалив из каждого из них \n.Отсюда вы можете найти в этом списке ваш target, в котором есть слово или какая-то уникальная фраза, для этого мы использовали password.Нет, мы можем установить его на target, разбивая его на =, а также сохранить target_idx.Отсюда мы просто изменяем второй индекс target, что мы .split('='), а затем .join(), что вместе.Теперь мы можем назначить нашу новую строку phrase на target_idx из content, заменив старую target.После того, как мы можем открыть нашу text.txt резервную копию и написать новую content, используя '\n'.join(content)

with open('text.txt') as f:
    content = [line.strip() for line in f]

for i in content:
    if 'password' in i:
        target = i.split('=')
        target_idx = content.index(i)

target[-1] = 'My_Password'
mod = '='.join(target)

content[target_idx] = mod

with open('text1.txt', 'w') as f:
    f.write('\n'.join(content))

До

chrx@chrx:~/python/stackoverflow/10.3$ cat text.txt 
some line
some line
some line
min.pop.password=SomeRandomNumbersWordsCharacters
some line
some line
some line

После

chrx@chrx:~/python/stackoverflow/10.3$ cat text.txt 
some line
some line
some line
min.pop.password=My_Password
some line
some line
some line
...