Как открыть и закрыть файл в Python
Может возникнуть ситуация, когда нужно взаимодействовать с внешними файлами с помощью Python. Python предоставляет встроенные функции для создания, записи и чтения файлов. В этой статье мы обсудим, как открыть внешний файл и закрыть его с помощью Python.
Открытие файла в PythonСуществует два типа файлов, которые можно обрабатывать в Python: обычные текстовые файлы и двоичные файлы (написанные на двоичном языке, 0 и 1). Открытие файла относится к подготовке файла либо к чтению, либо к записи. Это можно сделать с помощью функция open() . Эта функция возвращает файловый объект и принимает два аргумента, один из которых принимает имя файла, а другой принимает режим (режим доступа).
Примечание: Файл должен находиться в том же каталоге, что и скрипт Python, в противном случае необходимо записать полный адрес файла.
Синтаксис: File_object = open(«File_Name», «Access_Mode»)
Параметры:
- File_Name: Это имя файла, который необходимо открыть.
- Access_Mode: Режимы доступа определяют тип операций, возможных в открытом файле. В приведенной ниже таблице приведен список всего режима доступа, доступного в Python
Операция | Синтаксис | Описание |
---|---|---|
только для чтения | R | . |
Чтение и запись | r+ | Открыть файл для чтения и записи. |
Только запись | w | Открыть файл для записи. |
Запись и чтение | w+ | Открыть файл для чтения и записи. В отличие от «r+», это не вызывает ошибку ввода-вывода, если файл не существует. |
Добавить только | a | Открыть файл для записи и создать новый файл, если он не существует. Все дополнения делаются в конце файла, и никакие существующие данные не могут быть изменены. |
Добавить и прочитать | a+ | Открыть файл для чтения и записи и создать новый файл, если он не существует. Все дополнения делаются в конце файла, и никакие существующие данные не могут быть изменены. |
В этом примере мы будем открывать файл только для чтения. Исходный файл выглядит следующим образом:
Код:
Python3
|
Здесь мы открыли файл и распечатали его содержимое.
Вывод:
Привет, Компьютерщик! Это образец текстового файла для примера.Пример 2: Открытие и запись в файл с помощью Python
В этом примере мы будем добавлять новое содержимое к существующему файлу. Таким образом, первоначальный файл выглядит ниже:
Код:
Python3
" |
Теперь, если вы откроете файл, вы увидите приведенный ниже результат,
Вывод:
Пример 3: Открыть и перевернуть файл Pythonв этом примере. , мы перезапишем содержимое файла примера следующим кодом:
Код:
Python3
|
Приведенный выше код приводит к следующему результату:
Вывод:
Пример 4. Создание файла, если он не существует в Python
Метод path.touch() модуля pathlib создает файл в путь, указанный в пути path.touch().
Python3
|
Output:
Закрытие файла в Python
Как вы заметили, мы не закрыли ни один из файлов, над которыми мы работали в приведенных выше примерах. Хотя Python автоматически закрывает файл, если ссылочный объект файла выделяется для другого файла, стандартная практика — закрытие открытого файла, поскольку закрытый файл снижает риск необоснованного изменения или чтения.
Python имеет метод close() для закрытия файла. Метод close() можно вызывать более одного раза, и если какая-либо операция выполняется с закрытым файлом, возникает ошибка ValueError. В приведенном ниже коде показано простое использование метода close() для закрытия открытого файла.
Python3
|
|
Вывод:
ValueError: Операция ввода/вывода в закрытом файле.
Создание, открытие, добавление, чтение, запись {+Примеры}
Введение
Работа с файлами является неотъемлемой частью программирования. Обработка файлов в Python упрощается благодаря встроенным методам, включающим создание, открытие и закрытие файлов.
Пока файлы открыты, Python дополнительно позволяет выполнять различные операции с файлами, такие как чтение, запись и добавление информации.
В этой статье вы узнаете, как работать с файлами в Python.
Предварительные условия
- Python 3 установлен и настроен.
- IDE или редактор кода для написания кода.
- Доступ к терминалу для запуска кода (или запуска непосредственно в IDE).
- Текстовый файл для примеров.
Открытие файлов в Python
open()
Метод Python является основной функцией обработки файлов. Основной синтаксис:
file_object = open('file_name', 'mode')
open()
Функция принимает два элементарных параметра для обработки файла:
1. file_name
включает расширение файла и предполагает файл находится в текущем рабочем каталоге. Если расположение файла находится в другом месте, укажите абсолютный или относительный путь.
2. Режим
— необязательный параметр, определяющий способ открытия файла. В таблице ниже представлены различные возможные варианты:
Режим | Описание |
---|---|
'r' | считывает из файла и возвращает ошибку, если файл не существует ( ). |
'w' | Записывает в файл и создает файл, если он не существует, или перезаписывает существующий файл. |
'x' | Эксклюзивное создание, которое завершается ошибкой, если файл уже существует. |
'a' | Добавляет к файлу и создает файл, если он не существует, или перезаписывает существующий файл. |
'b' | Двоичный режим. Используйте этот режим для нетекстовых файлов, таких как изображения. |
't' | Текстовый режим. Использовать только для текстовых файлов ( по умолчанию ). |
'+' | Активирует методы чтения и записи. |
Режим должен иметь ровно одно создание ( x
)/Read ( R
)/Запись ( W
)/Приложение ( A
). один +
. Если этот режим не указан, по умолчанию используется значение 'rt'
для чтения текстовых файлов.
Ниже приведена таблица, описывающая поведение каждого из режимов при вызове.
Behavior | Modes |
---|---|
Read | r , r+ , w+ , a+ , x+ |
Write | r+ , w , w+ , a , a+ , x+ |
Create | w , w+ , a , a+ , x , x+ |
Pointer Position Start | r , r+ , w , w+ , x , x+ |
Pointer Position End | a , a+ |
Truncate (clear contents) | w , w+ |
Must Exist | r , R+ |
Не должен существовать | x , x+ |
.
начало файла.Примечание: Если файл не существует, Python выдает ошибку.
Чтобы прочитать текстовый файл в Python, загрузите файл с помощью функции open()
:
f = open("<имя файла>")
По умолчанию режим чтения текста ( ' рт'
). Таким образом, следующий метод эквивалентен методу по умолчанию:
f = open("<имя файла>", "rt")
Для чтения файлов в двоичном режиме используйте:
f = open("<имя файла> ","рб")
Добавьте +
, чтобы открыть файл в режиме чтения и записи:
f = open("<имя файла>", "r+") # Текстовое чтение и запись
f = open("<имя файла >", "rt+") # То же, что и выше
f = open("<имя файла>", "rb+") # Двоичное чтение и запись
Во всех случаях функция возвращает файловый объект, а характеристики зависят от выбранный режим.
Режим записи
Режим записи создает файл для записи содержимого и помещает указатель в начало. Если файл существует, запись усекает (удаляет) любую существующую информацию.
Предупреждение: Режим записи удаляет существующее содержимое немедленно . Проверьте, существует ли файл, прежде чем случайно перезаписать информацию.
Чтобы открыть файл для записи информации, используйте:
f = open("<имя файла>", "w")
Режим по умолчанию — текстовый, поэтому следующая строка эквивалентна режиму по умолчанию:
f = open("<имя файла>", "wt")
Для записи в двоичном режиме откройте файл командой:
f = open("<имя файла>", "wb")
Добавьте +
, чтобы разрешить чтение файла:
f = open("<имя файла>", "w+") # Текстовая запись и чтение
f = open("<имя файла>", " wt+") # То же, что и выше
f = open("<имя файла>", "wb+") # Двоичная запись и чтение
Функция open()
возвращает файловый объект, детали которого зависят от выбранного режимы.
Режим добавления
Режим добавления добавляет информацию в существующий файл, помещая указатель в конец. Если файл не существует, режим добавления создает файл.
Примечание: Основное различие между режимами записи и добавления заключается в том, что добавление не очищает содержимое файла.
Используйте одну из следующих строк, чтобы открыть файл в режиме добавления:
f = open("<имя файла>", "a") # Добавление текста
f = open("<имя файла>", " at") # То же, что и выше
f = open("<имя файла>", "ab") # Двоичное добавление
Добавьте знак +
, чтобы включить функцию чтения.
Режим создания
Режим создания (также известный как монопольное создание) создает файл, только если он не существует, устанавливая указатель в начало файла.
Примечание: Если файл существует, Python выдает ошибку. Используйте этот режим, чтобы избежать перезаписи существующих файлов.
Используйте одну из следующих строк, чтобы открыть файл в режиме создания:
f = open("<имя файла>", "x") # Text create
f = open("<имя файла>", " xt") # То же, что и выше
f = open("<имя файла>", "xb") # Создание двоичного файла
Добавьте знак +
в режим включения функции чтения в любую из вышеперечисленных строк.
Чтение файлов в Python
После импорта файла в объект Python предлагает множество методов для чтения содержимого.
Используйте метод read()
для файлового объекта и распечатайте результат. Например:
f = открыть("file.txt") print(f.read(),end="")
Примечание: print() 9Функция 0121
автоматически добавляет новую пустую строку. Чтобы изменить это поведение, добавьте параметр end=""
к print()
, чтобы удалить пустую строку.
Код печатает содержимое текстового файла.
Чтение частей файла
Введите номер функции read()
для чтения только указанного количества символов:
f = open("file.txt") print(f.read(5))
Вывод печатает первые пять символов в файле.
В качестве альтернативы используйте метод readline()
для печати только первой строки файла:
f = open("file.txt") print(f.readline())
Добавьте целое число к функции readline()
, чтобы напечатать указанное количество символов, не выходя за пределы первой строки.
Чтение строк
Для чтения строк и перебора содержимого файла используйте цикл for
:
f = open("file.txt") для строки в f: печать (строка, конец = "")
В качестве альтернативы используйте метод readlines()
для файлового объекта:
f = open("file. txt") print(f.readlines())
Функция возвращает список строк из файлового потока.
Добавьте целое число к функции readlines()
для управления количеством строк. Например:
f = открыть("file.txt") print(f.readlines(15))
Целое число представляет номер символа, и функция возвращает строку, где заканчивается символ, вместе с предыдущими строками.
Закрыть файлы
Файл остается открытым до вызова функции close()
. Хорошей практикой является закрытие файлов, которые больше не используются, чтобы избежать непредсказуемого поведения файлов и повреждения файлов.
Чтобы закрыть файл, запустите метод close()
для файлового объекта:
f.close()
Альтернативный способ обеспечить закрытие файла — использовать оператор с оператором
. Например:
с open("<имя файла>"): file_contents = f. read() # Дополнительный код здесь
Оператор with
автоматически закрывает файл.
Удаление файлов в Python
Для удаления файлов в Python требуется установить связь с операционной системой. Импортируйте библиотеку os
и удалите файл со следующим:
import os os.remove("file.txt")
Файл больше не доступен. Если файл не существует, Python выдает ошибку.
Файловые методы Python
Python предлагает различные другие функции при работе с файловыми объектами. Ниже приведена таблица, в которой перечислены все доступные процессы и то, что они делают.
Метод | Описание |
---|---|
close() | Сбрасывает и закрывает объект файла. |
detach() | Отделяет буфер от текстового потока и возвращает буфер. |
fileno() | Возвращает дескриптор файла, если он доступен. |
flush() | Сбрасывает буфер записи. Недоступно для объектов только для чтения. |
isatty() | Проверяет, является ли файловый поток интерактивным. |
read( | Read Максимальное количество символов. |
readable() | Проверяет, доступен ли объект для чтения. |
readline( | Читает из объекта до новой строки или конца файла. |
readlines( | Возвращает список строк из файлового объекта, где — приблизительное количество символов. |
seek(<смещение>, <позиция>) | Изменяет позицию указателя на <смещение> относительно <позиция> . |
seekable() | Проверяет, поддерживает ли файловый объект произвольный доступ. |
tell() | Выводит текущую позицию потока. |
усечь( | Изменяет размер файлового потока на (или текущую позицию, если не указано) и возвращает размер. |
write( | Записывает в объект файла и возвращает записанное количество символов. |
writable() | Проверяет, разрешает ли файловый объект запись. Оставить комментарий
|