@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" для открытия файла, содержимое файла будет заменено новым содержимым, поэтому необходимо быть осторожным при использовании этого метода.
@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
. Затем он проходит по каждой строке и, если она совпадает со старой строкой, заменяет ее на новую. Затем обновленное содержимое записывается обратно в файл. Если замена произошла успешно, выводится сообщение об успехе. Если старая строка не найдена в файле, выводится сообщение об ошибке.
Также убедитесь, что у вас есть права на запись файлов в директории, где расположен файл, который вы пытаетесь изменить.