В Python встроены мощные средства для работы с файлами. Основные операции включают чтение, запись и обновление файлов.
Открытие файла
Файл открывается с помощью функции open(). Она принимает два аргумента: путь к файлу и режим открытия.
file = open('filename.txt', 'r')
content = file.read()
file.close()
Режимы открытия файлов:
- ‘r’ — открытие для чтения (по умолчанию).
- ‘w’ — открытие для записи (файл будет перезаписан).
- ‘a’ — открытие для добавления (запись в конец файла).
- ‘r+’ — открытие для чтения и записи.
- ‘w+’ — открытие для чтения и записи (файл будет перезаписан).
- ‘a+’ — открытие для чтения и добавления.
Метод file.close() в Python закрывает открытый файловый объект. Когда файл открыт для чтения или записи, операционная система выделяет ресурсы для управления этим файлом. Вызывая close(), вы освобождаете эти ресурсы и завершаете взаимодействие с файлом.
Чтение файла
Существует несколько способов чтения содержимого файла:
read()— чтение всего содержимого файла.readline()— чтение одной строки.readlines()— чтение всех строк в виде списка.
with open('filename.txt', 'r') as file:
content = file.read()
print(content)
Использование конструкции with гарантирует закрытие файла после завершения работы с ним.
Запись в файл
Для записи в файл используется метод write().
with open('filename.txt', 'w') as file:
file.write('Новая строка')
Обновление файла
Для обновления файла можно открыть его в режиме ‘r+’, прочитать содержимое, внести изменения и записать обратно.
with open('filename.txt', 'r+') as file:
content = file.read()
new_content = content.replace('старое значение', 'новое значение')
file.seek(0)
file.write(new_content)
file.truncate()
Рассмотрим каждую часть кода по отдельности, чтобы понять, что происходит. Код открывает файл filename.txt в режиме 'r+', что означает чтение и запись. Затем выполняются следующие действия:
content = file.read(): Читается всё содержимое файла и сохраняется в переменнойcontent.new_content = content.replace('старое значение', 'новое значение'): Создается новая строкаnew_content, в которой все вхождения строки'старое значение'заменяются на'новое значение'.
file.seek(0) перемещает указатель текущей позиции в файле на начало файла (позиция 0). Это необходимо, чтобы последующие операции записи начинались с самого начала файла, а не продолжались с той позиции, на которой закончился предыдущий вызов read().
file.truncate() обрезает файл до текущей позиции указателя. Если позиция указателя была перемещена в начало файла с помощью seek(0), то весь файл будет перезаписан новым содержимым. Если бы позиция указателя находилась посередине файла, то все данные после этой точки были бы удалены.
Источник: https://stepik.org/lesson/1582351/step/1?unit=1603700
Было ли это полезно?
0 / 0