Открытие/закрытие файла для чтения/записи в Python.
Прежде чем начать работать с файлом, первое, что нужно сделать, это открыть его. Это делается путем вызова встроенной функции open()
. Она имеет единственный обязательный аргумент, который представляет путь к файлу filename
, но чаще всего используется с двумя аргументами и возвращает объект file object
:
>>> fp = open('filename', 'w')
Первый аргумент filename
— это строка, содержащая имя файла. Второй аргумент mode
— это другая строка, содержащая несколько символов, описывающих способ использования файла. режим может быть, 'r'
когда файл будет только читаться, 'w'
только для записи (существующий файл с таким же именем будет удален) и 'a'
открывается файл для добавления, любые данные, записанные в файл, автоматически добавляются в конец. Режим 'r+'
открывает файл для чтения и записи. Аргумент mode
является необязательным.
mode
опущен.Обычно файлы открываются в текстовом режиме, то есть вы читаете и пишете строки из файла и в файл, которые закодированы в определенной кодировке. Если кодировка не указана, по умолчанию используется кодировка платформы (смотрите описание встроенной функции open()
). При добавлении в аргумент mode
литерала 'b'
файл открывается в двоичном режиме. Теперь данные читаются и записываются в виде байтовых объектов. Этот режим следует использовать для всех файлов, которые не содержат текст.
В текстовом режиме, используемом по умолчанию, при чтении файла выполняется преобразование концовок строк, эти преобразования зависят от платформы. Символы конца строки \n
в Unix, \r\n
в Windows, в значение \n
. При записи файла записи в текстовом режиме по умолчанию выполняется преобразование вхождений \n
обратно в концовки строк, соответствующие платформам. Эта закулисная модификация данных подходит для текстовых файлов, но будет повреждать двоичные данные, такие как файлы JPEG
или EXE
. Будьте очень осторожны, используя двоичный режим при чтении и записи таких файлов.
Рекомендуется использовать контекстный менеджер with
при работе с файловыми объектами. Преимущество заключается в том, что файл правильно закрывается после завершения, даже если в какой-то момент возникает исключение. Использование with
также намного короче, чем писать эквивалентные try-finally
блоки:
>>> with open('filename') as fp: ... read_data = fp.read() # Мы можем проверить, что файл был автоматически закрыт. >>> fp.closed # True
Если вы не используете ключевое слово
, то вам следует вызвать fp.close()
, чтобы закрыть файл и немедленно освободить все системные ресурсы, используемые им. Если вы явно не закроете файл, сборщик мусора Python в конечном итоге уничтожит объект и закроет открытый файл для вас, но файл может оставаться открытым некоторое время. Другой риск заключается в том, что не закрытый файл может привести к нежелательному поведению, включая утечку ресурсов. Так что лучше всего убедиться, что ваш код ведет себя определенным образом, что уменьшает риск нежелательного поведения.
Правильный способ закрыть файл не используя инструкцию with
это использовать блок try-finally
:
>>> fp = open('filename') >>> try: ... # Дальнейшая обработка файлов идет здесь ... read_data = fp.read() >>> finally: ... fp.close()
После закрытия объекта file object
с помощью оператора with
или вызова функции fp.close()
в блоке try-finally
попытки использовать объект file
автоматически завершатся неудачей.
>>> fp.close() >>> fp.read() # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # ValueError: I/O operation on closed file.
Режимы открытия файла Python | Delft Stack
- Режим
r
при открытии файла Python - Режим
r+
при открытии файла Python - Режим
w
при открытии файла Python - Режим w + при открытии файла Python
- Режим
a
при открытии файла Python - Режим
a+
при открытии файла Python - Режим
x
при открытии файла Python
Python, как и другие языки программирования, поддерживает обработку файлов и позволяет программистам иметь дело с файлами и, по сути, выполнять некоторые базовые операции, такие как чтение, запись и некоторые другие параметры обработки файлов для работы с файлами.
Самая удобная и важная функция при работе с файлами — это функция open()
. Он используется для открытия файла и возврата эквивалентного файлового объекта. Функция open()
в основном принимает два параметра: filename
и mode
.
В этом руководстве мы узнаем о различных режимах открытия файла в Python.
Режим
r
при открытии файла PythonРежим r
используется, когда мы хотим открыть файл для чтения. Указатель файла в этом режиме помещается в начальную точку файла.
Режим r
можно использовать в функции open()
следующим образом:
f1 = open("god.txt", "r")
Режим
r+
при открытии файла PythonРежим r+
используется для открытия файла как для чтения, так и для записи. Как и в предыдущем режиме, указатель файла в этом режиме также помещается в начальную точку файла.
Режим r+
можно использовать в функции
следующим образом:
f1 = open("god. txt", "r+")
Для открытия файла на запись и чтение в двоичном формате мы можем использовать режим rb+
.
f1 = open("god.txt", "rb+")
Режим
w
при открытии файла PythonРежим w
используется для открытия файла только с целью записи. Если файл уже существует, он обрезает файл до нулевой длины и в противном случае создает новый файл, если он еще не существует. Указатель файла в этом режиме помещается в начальную точку файла.
Режим w
можно использовать в функции open()
следующим образом:
f1 = open("god.txt", "w")
Режим w + при открытии файла Python
В режиме w+
файл открывается для чтения и записи. Если файл уже существует, он усекается, в противном случае создается новый файл, если он не существует. Указатель файла в этом режиме помещается в начальную точку файла.
Режим w+
можно использовать в функции open()
следующим образом.
f1 = open("god.txt", "w+")
Для открытия файла в двоичном формате можно использовать режим wb+
.
f1 = open("god.txt", "wb+")
Прелюбодеяние в ка…
Please enable JavaScript
Прелюбодеяние в католической церкви
Режим
a
при открытии файла PythonВ режиме a
файл открывается с целью добавления. Указатель файла в этом режиме помещается в конец файла, если он уже существует в системе. Если файл не существует, он создается для записи.
Режим a
можно использовать в функции open()
следующим образом.
f1 = open("god.txt", "a")
Режим
a+
при открытии файла PythonРежим a+
открывает файл как для чтения, так и для добавления. Указатель файла в этом режиме помещается в конец файла, если он уже существует в системе. Файл открывается в режиме добавления. Если файл не существует, он создается для записи.
Режим a+
можно использовать в функции open()
следующим образом.
f1 = open("god.txt", "a+")
Для открытия файла в двоичном режиме мы можем добавить режим ab+
.
f1 = open("god.txt", "ab+")
Режим
x
при открытии файла PythonЭтот режим доступен для версий Python 3 и выше. В режиме x
файл открывается для монопольного создания, ошибка невозможна, если файл с таким именем уже существует. Если указано эксклюзивное создание, это означает, что этот режим не будет создавать файл, если файл с указанным именем уже существует. В режиме x
файл доступен только для записи, но в режиме x+
файл открывается как для чтения, так и для записи.
Этот режим важен и пригодится, когда мы не хотим случайно обрезать уже существующий файл с режимами a
или w
.
Режим x
можно использовать в функции open()
следующим образом.
f1 = open("god.txt", "x")
Как читать из файла в Python
Python предоставляет встроенные функции для создания, записи и чтения файлов. Есть два типа файлов, которые можно обрабатывать в python: обычные текстовые файлы и двоичные файлы (написанные на двоичном языке, 0 и 1).
- Текстовые файлы: В файлах этого типа каждая строка текста завершается специальным символом, называемым EOL (конец строки), который по умолчанию является символом новой строки (‘\n’) в python.
- Двоичные файлы: В этом типе файла нет терминатора для строки, и данные сохраняются после преобразования их в машинопонятный двоичный язык.
Примечание: Чтобы узнать больше о работе с файлами, щелкните здесь.
Режим доступа
Режимы доступа определяют тип операций, возможных в открытом файле. Это относится к тому, как файл будет использоваться после его открытия. Эти режимы также определяют расположение дескриптора файла в файле. Дескриптор файла подобен курсору, который определяет, откуда данные должны быть прочитаны или записаны в файле. Различные режимы доступа для чтения файла –
- Только чтение («r») : Открыть текстовый файл для чтения. Ручка располагается в начале файла. Если файл не существует, возникает ошибка ввода-вывода. Это также режим по умолчанию, в котором открывается файл.
- Чтение и запись («r+») : Открыть файл для чтения и записи. Ручка располагается в начале файла. Вызывает ошибку ввода-вывода, если файл не существует.
- Добавление и чтение (‘a+’) : Открытие файла для чтения и записи. Файл создается, если он не существует. Ручка располагается в конце файла. Записываемые данные будут вставлены в конце после существующих данных.
Примечание: Чтобы узнать больше о режиме доступа, нажмите здесь.
Открытие файла
Это делается с помощью функции open(). Для этой функции не требуется импортировать модуль.
Синтаксис:
File_object = open(r"File_Name", "Access_Mode")
Файл должен находиться в том же каталоге, что и файл программы python, в противном случае вместо имени файла должен быть указан полный адрес файла . Примечание: Символ r ставится перед именем файла, чтобы символы в строке имени файла не рассматривались как специальные символы. Например, если в адресе файла есть \temp, то \t интерпретируется как символ табуляции и возникает ошибка неверного адреса. r делает строку необработанной, т. е. сообщает, что строка не содержит специальных символов. r можно игнорировать, если файл находится в том же каталоге, а адрес не помещается.
Python3
|
Здесь файл1 создается как объект для MyFile1 и файл2 как объект для MyFile2.
Закрытие файла
Функция close() закрывает файл и освобождает место в памяти, занятое этим файлом. Он используется в тот момент, когда файл больше не нужен или если его нужно открыть в другом файловом режиме.
Синтаксис:
file_object.close ()
Python3
|
Чтение из файла
Существует три способа чтения данных из текстового файла.
- read() : Возвращает прочитанные байты в виде строки. Читает n байтов, если n не указано, читает весь файл.
File_object.read([n])
- readline() : Читает строку файла и возвращает в виде строки. Для указанного n читает не более n байтов. Однако не читает более одной строки, даже если n превышает длину строки.
File_object.readline([n])
- readlines() : Считывает все строки и возвращает их как строковый элемент в списке.
File_object.readlines()
Примечание. ‘\n’ рассматривается как специальный символ из двух байтов.
Пример:
Python3
")
)
|
7 с оператором на Python используется при обработке исключений для создания кода чище и намного читабельнее. Это упрощает управление общими ресурсами, такими как файловые потоки. В отличие от приведенных выше реализаций, нет необходимости вызывать file.close() при использовании оператора with. Оператор with сам по себе обеспечивает правильное получение и освобождение ресурсов. Синтаксис: 9003 Output: Примечание: Чтобы узнать больше об операторе with, нажмите здесь. Работа с файлами — одна из наиболее частых операций, которую приходится выполнять программистам, особенно когда задействовано много операций, ориентированных на данные. Работа с такими файлами, как текстовые файлы, двоичные сценарии, листы Excel и т. д., является одним из распространенных вариантов использования. Хотя существуют расширенные библиотеки для работы с таблицами Excel и файлами CSV, которые содержат огромное количество данных, если вы хотите работать с файлами, которые содержат относительно меньше данных, вы можете просто использовать один из многих встроенных методов, предоставляемых Python для работать с файлами. В этой статье вы узнаете, как открыть файл в Python. Но прежде чем вы перейдете к изучению этих методов, вам необходимо понять различные типы файлов, с которыми Python позволяет вам работать, и режимы, которые можно использовать для доступа к ним. Итак, без дальнейших церемоний, давайте начнем. Преимущественно Python позволяет работать со следующими двумя типами файлов. Первый — это обычный текстовый файл, который вы используете изо дня в день, а второй — двоичный файл, понятный только машине, состоящий из 0 и 1. Как обсуждалось ранее, вы можете работать с файлами и манипулировать ими в скрипте Python. Предположим, вы хотите использовать определенный набор данных, хранящихся в текстовом файле, и вам нужно выполнить над ним некоторые операции или отфильтровать его. В таком случае вам потребуется сначала открыть файл, внести необходимые изменения или просто получить доступ к данным и закрыть его. Именно так вы бы сделали это, используя файловые менеджеры с графическим интерфейсом. То же самое и с операторами Python. Python имеет встроенный метод open(), который позволяет вам открывать файлы и создавать файловый объект. Общий синтаксис метода open() - FileObject = open(r"Имя файла", "Режим доступа и тип файла") Вам не нужно импортировать пакет или библиотеку, чтобы использовать этот метод. Вместе с командой необходимо указать два параметра. Здесь вы можете указать только имя файла или полный путь к файлу. Если вы просто включаете имя файла, вам нужно убедиться, что скрипт Python и текстовый файл находятся в одном каталоге. Но если вы хотите указать путь к файлу, вам нужно убедиться, что вы включили символ «r» перед путем к файлу. Это гарантирует, что интерпретатор обрабатывает путь к файлу как необработанную строку. Например, если путь к файлу содержит каталог с именем \temp, то интерпретатор выдаст ошибку, потому что он будет читать \t как специальный символ с именем табуляция. Здесь вам нужно определить, какой режим доступа вы хотите предоставить к файлу и какой тип файла вы хотите открыть. Python позволяет читать, писать и добавлять в файл. Буквы р, ш и а. обозначьте их. Наряду с этим вы можете указать тип файла. Для текстового файла вы можете включить букву «t», а для двоичного файла вы можете включить букву «b». Если вы не укажете тип файла, по умолчанию он понимает, что вы предоставили текстовый файл. Следовательно, если вы хотите предоставить доступ для записи к двоичному файлу, параметр будет «wb». Кроме того, существуют различные варианты каждого режима. Давайте обсудим их все. ‘х’ Используется для создания нового пустого файла. «р» Используется для открытия файла в режиме только для чтения. Более того, файл должен существовать до того, как вы будете использовать этот режим. ‘ш’ Используется для открытия файла в режиме только для записи. Если файл уже существует, он усекается до 0 символов или перезаписывается предоставленным вами содержимым. Если его нет, то он создается. «а» Также используется для открытия файла в режиме только для записи. Если файл уже существует, он остается нетронутым, а содержимое добавляется в конце. Но если файл не существует, он создается. «р+» Используется для открытия файла как для чтения, так и для записи, и файл должен существовать. ‘ж+’ Также используется для открытия файла как для чтения, так и для записи. Если он уже существует, то он либо усекается, либо перезаписывается. Если он не существует, он создается. «а+» Также используется для открытия файла как для чтения, так и для записи. Единственное отличие состоит в том, что если файл уже существует, содержимое добавляется в конец. Если нет, то он создается. Как правило, режимы доступа также определяют местоположение дескриптора файла. Дескриптор файла аналогичен положению курсора в файле. В зависимости от режима доступа определяется расположение дескриптора файла. Например, в режиме добавления дескриптор файла находится в конце файла. А в режиме чтения дескриптор файла находится в начале файла. Далее рассмотрим приведенный ниже код. myfile1 = открыть ("simplilearn.txt", "w") myfile2 = open(r"/home/jarvis/Documents/simplilearn.txt", "r+") Здесь вы создали два файловых объекта для одного и того же файла. Первый напрямую использует имя файла. Это не приведет к ошибке, потому что текстовый файл и скрипт Python находятся в одном каталоге. Следующий — указать путь к файлу. Вам нужно использовать символ r в начале, чтобы интерпретатор читал путь как необработанную строку. Используем открытый метод с разными режимами доступа. Попробуем прочитать содержимое файла в файловый объект и распечатать его. myfile1 = открыть ("simplilearn.txt", "r") печать (myfile1.read()) myfile1.close() Здесь вы использовали метод открытия и указали имя файла вместе с режимом доступа для чтения. Затем вы вызвали метод read() для файлового объекта и распечатали его содержимое. Затем вы закрыли файловый объект, чтобы избежать потери памяти и ресурсов. Вы можете писать в файл, используя два разных метода — write() и writelines(). Метод write() просто записывает одну строку в качестве новой строки. Метод writelines берет список строк и записывает их в файл. Давайте посмотрим на пример для них обоих. inputList = ["Здравствуйте и добро пожаловать в Simplilearn\n", "У нас есть множество бесплатных и платных курсов для вас\n"] inputString = "Здравствуйте и добро пожаловать\n" myfile1 = открыть ("simplilearn.txt", "w") myfile1.write(inputString) myfile1.close() print("Используя метод записи...") myfile1 = открыть ("simplilearn.txt", "r") печать (myfile1.read()) myfile1.close() myfile2 = открыть("simplilearn.txt", "w") myfile2.writelines (список ввода) myfile2. close() print("Используя метод writelines...") myfile2 = открыть ("simplilearn.txt", "r") печать (myfile2.read()) myfile2.close() Здесь вы видели создание списка строк и простой строки. Сначала вы открыли файловый объект в режиме записи и использовали метод записи для записи простой строки в файл, а затем закрыли его, используя метод закрытия файлового объекта. Затем вы открыли объект файла в режиме чтения и распечатали содержимое, которое вы только что написали, используя метод записи, и снова закрыли объект. Далее вы сделали то же самое для метода writelines. Давайте проверим вывод программы. Чтобы создать более чистый, интуитивно понятный и эффективный код, вы можете использовать оператор with. Если вы используете оператор with, вам не нужно закрывать файловый объект. Он автоматически позаботится о выделении ресурсов и освободит пространство и ресурсы, как только вы выйдете из блока with. Общий синтаксис - с открытым <имя_файла> как файл Давайте разберемся с этим на примере. inputList = ["Здравствуйте и добро пожаловать в Simplilearn\n", "У нас есть множество бесплатных и платных курсов для вас\n"] с открытым ("simplilearn.txt", "w") как myfile: myfile.writelines(inputList) с open("simplilearn.txt", "r") как myfile: print(myfile.read()) Здесь в первом блоке with вы открыли файл в режиме записи и вставили несколько предложений методом writelines. В следующем блоке with вы открыли его в режиме чтения и распечатали содержимое. Вам не нужно вызывать метод close для файловых объектов, так как операторы with автоматически позаботятся об этом. Подводя итог, в этой статье вы увидели, как открыть файл в Python и зачем вообще это нужно. Вы ознакомились с различными типами файлов, режимами доступа и тем, как открыть файл с помощью встроенного метода open(). С оператором
с открытым именем файла в файле:
Python3
L
=
[
9 6161666166166.
6661666.
6616.
66169.
Paris \n", "This
is
London \n"]
with
open
("myfile.txt", "w") as file1:
file1.write ("hello \ n")
File1.writelines (L)
File1. close ()
1161111111111111111100612 с
11612 с
11111611100612 с
1611611212196161619611 гг. .txt", "r
+
") as file1:
print
(file1.read())
Hello
Это Дели
Это Париж
Это Лондон
Все, что вам нужно знать
Типы файлов
Открытие файла
Имя файла
Режим доступа
Режим доступа
Использовать
Ждете перехода в область программирования? Пройдите курс обучения Python и начните свою карьеру профессионального программиста Python
. Завершение!