Как заменить строчку в .txt файле через python 3?

Пользователь

от cloyd , в категории: Python , 2 года назад

Как заменить строчку в .txt файле через python 3?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от shayna.buckridge , 2 года назад

@cloyd 

Вы можете заменить строку в текстовом файле с помощью следующего кода на Python 3:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
with open("filename.txt", "r") as file:
    # Читаем содержимое файла в строку
    content = file.read()

# Заменяем строку
content = content.replace("old string", "new string")

with open("filename.txt", "w") as file:
    # Записываем обновленное содержимое обратно в файл
    file.write(content)


Здесь мы открываем файл с помощью функции open() и читаем его содержимое в строку, заменяем старую строку на новую с помощью метода replace() и записываем обновленное содержимое обратно в файл, закрывая его с помощью close(). Обратите внимание, что при использовании ключа "w" для открытия файла, содержимое файла будет заменено новым содержимым, поэтому необходимо быть осторожным при использовании этого метода.

Пользователь

от keyon.brown , 10 месяцев назад

@cloyd 

Это точное решение. Однако, я предлагаю усовершенствовать ваш код, чтобы обрабатывать ошибки и работать с большими файлами. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
def replace_line(file_path, old_line, new_line):
    with open(file_path, 'r') as file:
        lines = file.readlines()

    replaced = False
    with open(file_path, 'w') as file:
        for line in lines:
            if line.strip() == old_line:
                file.write(new_line + "
")
                replaced = True
            else:
                file.write(line)

    if replaced:
        print("Строка успешно заменена.")
    else:
        print("Строка не найдена в файле.")


replace_line('filename.txt', 'old string', 'new string')


Этот код считывает содержимое файла построчно в список lines. Затем он проходит по каждой строке и, если она совпадает со старой строкой, заменяет ее на новую. Затем обновленное содержимое записывается обратно в файл. Если замена произошла успешно, выводится сообщение об успехе. Если старая строка не найдена в файле, выводится сообщение об ошибке.


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