Как открыть файл в Python
Обновлено: 21.11.2024
В этом руководстве вы узнаете об операциях с файлами Python. В частности, открытие файла, чтение из него, запись в него, закрытие и различные методы работы с файлами, о которых вам следует знать.
Видео: чтение и запись файлов в Python
Файлы
Файлы – это именованные области на диске, в которых хранится соответствующая информация. Они используются для постоянного хранения данных в энергонезависимой памяти (например, на жестком диске).
Поскольку оперативная память (ОЗУ) энергозависима (данные теряются при выключении компьютера), мы используем файлы для будущего использования данных, сохраняя их на постоянной основе.
Когда мы хотим прочитать файл или записать в него, нам нужно сначала открыть его. Когда мы закончим, его нужно закрыть, чтобы освободить ресурсы, которые связаны с файлом.
Следовательно, в Python операции с файлами выполняются в следующем порядке:
- Открыть файл
- Чтение или запись (выполнение операции)
- Закройте файл
Открытие файлов в Python
В Python есть встроенная функция open() для открытия файла. Эта функция возвращает файловый объект, также называемый дескриптором, поскольку он используется для чтения или изменения файла соответствующим образом.
Мы можем указать режим при открытии файла. В режиме мы указываем, хотим ли мы читать r, писать w или добавлять a к файлу. Мы также можем указать, хотим ли мы открыть файл в текстовом или двоичном режиме.
По умолчанию чтение осуществляется в текстовом режиме. В этом режиме мы получаем строки при чтении из файла.
С другой стороны, двоичный режим возвращает байты, и этот режим следует использовать при работе с нетекстовыми файлами, такими как изображения или исполняемые файлы.
Режим | Описание |
---|---|
r | Открывает файл для чтения. (по умолчанию) |
w | Открывает файл для записи. Создает новый файл, если он не существует, или обрезает файл, если он существует. |
x | Открывает файл для монопольного создания. Если файл уже существует, операция завершается ошибкой. |
a | Открывает файл для добавления в конец файла без его усечения. Создает новый файл, если он не существует. |
t | Открывается в текстовом режиме. (по умолчанию) |
b | Открывается в двоичном режиме. |
+ | < td>Открывает файл для обновления (чтения и записи)
В отличие от других языков, символ a не означает число 97, пока он не будет закодирован с использованием ASCII (или других эквивалентных кодировок).
Кроме того, кодировка по умолчанию зависит от платформы. В Windows это cp1252, а в Linux — utf-8.
Поэтому мы не должны также полагаться на кодировку по умолчанию, иначе наш код будет вести себя по-разному на разных платформах.
Поэтому при работе с файлами в текстовом режиме настоятельно рекомендуется указывать тип кодировки.
Закрытие файлов в Python
Когда мы закончим выполнение операций с файлом, нам нужно правильно закрыть файл.
Закрытие файла освободит ресурсы, которые были связаны с файлом. Это делается с помощью метода close(), доступного в Python.
В Python есть сборщик мусора для очистки объектов, на которые нет ссылок, но мы не должны полагаться на него при закрытии файла.
Этот метод не совсем безопасен. Если возникает исключение, когда мы выполняем какую-либо операцию с файлом, код завершает работу, не закрывая файл.
Более безопасный способ — попробовать. окончательно заблокировать.
Таким образом, мы гарантируем, что файл будет правильно закрыт, даже если возникнет исключение, которое приведет к остановке выполнения программы.
Лучший способ закрыть файл — использовать оператор with. Это гарантирует, что файл будет закрыт при выходе из блока внутри оператора with.
Нам не нужно явно вызывать метод close(). Это делается внутри.
Запись в файлы в Python
Чтобы записать в файл в Python, нам нужно открыть его в режиме записи w, добавить a или режим монопольного создания x.
Нам нужно быть осторожным с режимом w, так как он перезапишет файл, если он уже существует. Благодаря этому все предыдущие данные стираются.
Запись строки или последовательности байтов (для двоичных файлов) выполняется с помощью метода write(). Этот метод возвращает количество символов, записанных в файл.
Эта программа создаст новый файл с именем test.txt в текущем каталоге, если он не существует. Если он существует, он перезаписывается.
Мы должны сами включать символы новой строки, чтобы различать разные строки.
Чтение файлов в Python
Чтобы прочитать файл в Python, мы должны открыть файл в режиме чтения r.
Для этой цели доступны различные методы. Мы можем использовать метод read(size) для чтения размера данных.Если параметр размера не указан, он считывается и возвращается до конца файла.
Мы можем прочитать файл text.txt, который мы написали в предыдущем разделе, следующим образом:
Мы видим, что метод read() возвращает новую строку как '\n' . Как только будет достигнут конец файла, при дальнейшем чтении мы получим пустую строку.
Мы можем изменить текущий файловый курсор (положение), используя метод seek(). Точно так же метод tell() возвращает нашу текущую позицию (в байтах).
Мы можем читать файл построчно, используя цикл for. Это эффективно и быстро.
В этой программе строки в самом файле содержат символ новой строки \n . Итак, мы используем конечный параметр функции print(), чтобы избежать двух новых строк при печати.
В качестве альтернативы мы можем использовать метод readline() для чтения отдельных строк файла. Этот метод читает файл до новой строки, включая символ новой строки.
Наконец, метод readlines() возвращает список оставшихся строк всего файла. Все эти методы чтения возвращают пустые значения при достижении конца файла (EOF).
Методы файла Python
Для файлового объекта доступны различные методы. Некоторые из них использовались в приведенных выше примерах.
Вот полный список методов в текстовом режиме с кратким описанием:
Вывод: в этом руководстве вы узнаете о различных способах чтения текстовых файлов в Python.
Ниже показано, как прочитать все тексты из файла readme.txt в строку:
Этапы чтения текстового файла в Python
Чтобы прочитать текстовый файл в Python, выполните следующие действия:
- Сначала откройте текстовый файл для чтения с помощью функции open().
- Во-вторых, прочитайте текст из текстового файла, используя метод read() , readline() или readlines() файлового объекта.
- В-третьих, закройте файл с помощью метода file close().
1) функция open()
У функции open() много параметров, но вы сосредоточитесь на первых двух.
Параметр path_to_file указывает путь к текстовому файлу.
Если файл находится в той же папке, что и программа, нужно просто указать имя файла. В противном случае необходимо указать путь к файлу.
Чтобы указать путь к файлу, используйте косую черту ( '/' ), даже если вы работаете в Windows.
Например, если файл readme.txt хранится в папке с образцами в качестве программы, необходимо указать путь к файлу как c:/sample/readme.txt
Режим является необязательным параметром. Это строка, указывающая режим, в котором вы хотите открыть файл.
В следующей таблице показаны доступные режимы открытия текстового файла:
Режим | Описание |
---|---|
'r' | < td>Открыть текстовый файл для чтения текста|
'w' | Открыть текстовый файл для записи текста |
'a' | Открыть текстовый файл для добавления текста |
Например, чтобы открыть файл с именем the-zen-of-python.txt, хранящийся в той же папке, что и программа, используйте следующий код:
Функция open() возвращает файловый объект, который вы будете использовать для чтения текста из текстового файла.
2) Чтение текстовых методов
Объект файла предоставляет три метода чтения текста из текстового файла:
- read() — прочитать весь текст из файла в строку. Этот метод удобен, если у вас есть небольшой файл и вы хотите манипулировать всем текстом этого файла.
- readline() — прочитать текстовый файл построчно и вернуть все строки в виде строк.
- readlines() — прочитать все строки текстового файла и вернуть их в виде списка строк.
3) метод close()
Открытый файл останется открытым, пока вы не закроете его с помощью метода close().
Важно закрыть файл, который больше не используется. Если вы не закроете файл, программа может выйти из строя или файл будет поврежден.
Ниже показано, как вызвать метод close() для закрытия файла:
Чтобы закрыть файл автоматически, не вызывая метод close(), используйте оператор with следующим образом:
На практике вы будете использовать оператор with для автоматического закрытия файла.
Чтение примеров текстовых файлов
Для демонстрации мы будем использовать файл-zen-of-python.txt.
В следующем примере показано, как использовать метод read() для чтения всего содержимого файла the-zen-of-python.txt в строку:
В следующем примере метод readlines() используется для чтения текстового файла и возврата содержимого файла в виде списка строк:
В следующем примере показано, как использовать readline() для чтения текстового файла построчно:
Более краткий способ чтения текстового файла построчно
Функция open() возвращает файловый объект, который является повторяемым объектом.Таким образом, вы можете использовать цикл for для перебора строк текстового файла следующим образом:
Это более краткий способ чтения текстового файла построчно.
Чтение текстовых файлов UTF-8
Код в предыдущих примерах отлично работает с текстовыми файлами ASCII. Однако, если вы имеете дело с другими языками, такими как японский, китайский и корейский, текстовый файл не является простым текстовым файлом ASCII. И, скорее всего, это файл UTF-8, в котором используются не только стандартные текстовые символы ASCII.
Чтобы открыть текстовый файл UTF-8, вам нужно передать encoding='utf-8' функции open(), чтобы указать ей ожидать символов UTF-8 из файла.
В Python нет необходимости импортировать внешнюю библиотеку для чтения и записи файлов. Python предоставляет встроенную функцию для создания, записи и чтения файлов.
В этом руководстве по работе с файлами в Python мы узнаем:
Как открыть текстовый файл в Python
Чтобы открыть файл, вам нужно использовать встроенную функцию открытия. Функция открытия файла Python возвращает объект файла, который содержит методы и атрибуты для выполнения различных операций по открытию файлов в Python.
Синтаксис функции открытия файла Python
- имя файла: имя файла, открытого файловым объектом.
- режим: атрибут файлового объекта указывает, в каком режиме был открыт файл.
Подробнее об этих режимах рассказывается ниже
Как создать текстовый файл в Python
Шаг 1. Откройте файл .txt
- Мы объявили переменную «f», чтобы открыть файл с именем guru99.txt. Open принимает 2 аргумента: файл, который мы хотим открыть, и строку, представляющую виды разрешений или операций, которые мы хотим выполнить с файлом
- Здесь мы использовали букву «w» в нашем аргументе, которая указывает, что Python записывает в файл, и он создаст файл в Python, если он не существует в библиотеке
- Знак плюс указывает на чтение и запись для операции создания файла Python.
Шаг 2) Введите данные в файл
- У нас есть цикл for, который работает с диапазоном из 10 чисел.
- Использование функции записи для ввода данных в файл.
- Выход, который мы хотим повторить в файле, — это «это номер строки», который мы объявляем с помощью функции записи файла Python, а затем процент d (отображает целое число)
- По сути, мы вводим номер строки, которую пишем, затем помещаем его в символ возврата каретки и символ новой строки.
Шаг 3. Закройте экземпляр файла
- Это закроет сохраненный экземпляр файла guru99.txt.
Вот результат после выполнения кода для создания текстового файла в примере Python:
Когда вы нажмете на свой текстовый файл, в нашем случае «guru99.txt», он будет выглядеть примерно так
Как добавить текстовый файл в Python
Вы также можете добавить новый текст в уже существующий файл или в новый файл.
Шаг 1)
Еще раз, если вы видите знак плюса в коде, это означает, что он создаст новый файл, если он не существует. Но в нашем случае у нас уже есть файл, поэтому нам не нужно создавать новый файл для Python, добавляющего операцию к файлу.
Шаг 2)
Это запишет данные в файл в режиме добавления.
Вы можете увидеть результат в файле «guru99.txt». Вывод кода состоит в том, что к предыдущему файлу добавляются новые данные с помощью операции Python append to file.
Как читать файлы в Python
Вы можете прочитать файл в Python, вызвав файл .txt в «режиме чтения»(r).
Шаг 1. Откройте файл в режиме чтения
Шаг 2) Мы используем функцию режима в коде, чтобы проверить, что файл находится в открытом режиме. Если да, то продолжим
Шаг 3) Используйте f.read для чтения данных файла и сохранения их в переменном содержимом для чтения файлов в Python
Шаг 4) Распечатайте содержимое текстового файла чтения Python
Вот результат чтения примера файла Python:
Как прочитать файл построчно в Python
Вы также можете прочитать файл .txt построчно, если ваши данные слишком велики для чтения. Код readlines() разделит ваши данные в удобном для чтения режиме.
При работе с Python вам не нужно импортировать библиотеку для чтения и записи в файл. Он изначально обрабатывается языком, хотя и уникальным образом. Ниже мы описываем простые шаги для чтения и записи в файл в Python.
Первое, что вам нужно сделать, это использовать встроенную функцию Python open file, чтобы получить файловый объект.
Функция open открывает файл. Это просто. Это первый шаг в чтении и записи файлов в Python.
Когда вы используете функцию open, она возвращает нечто, называемое файловым объектом. Файловые объекты содержат методы и атрибуты, которые можно использовать для сбора информации об открытом файле. Их также можно использовать для управления указанным файлом.
Например, атрибут mode объекта файл указывает, в каком режиме был открыт файл. А атрибут name сообщает имя файла.
Вы должны понимать, что файл и файловый объект — это две совершенно разные, но связанные между собой вещи.
Типы файлов
То, что вы можете назвать файлом, в Python немного отличается.
Например, в Windows файл может быть любым элементом, которым манипулирует, редактирует или создает пользователь/ОС. Это означает, что файлами могут быть изображения, текстовые документы, исполняемые файлы, файлы Excel и многое другое. Большинство файлов организовано путем хранения их в отдельных папках.
Файл в Python классифицируется как текстовый или двоичный, и разница между этими двумя типами файлов очень важна.
Текстовые файлы структурированы как последовательность строк, где каждая строка содержит последовательность символов. Это то, что вы знаете как код или синтаксис.
Каждая строка заканчивается специальным символом, называемым EOL или символом конца строки. Существует несколько типов, но наиболее распространенными являются запятые или символы новой строки. Он заканчивает текущую строку и сообщает интерпретатору, что началась новая.
Также можно использовать обратную косую черту, которая сообщает интерпретатору, что следующий символ после косой черты следует рассматривать как новую строку. Этот символ полезен, когда вы хотите начинать новую строку не в самом тексте, а в коде.
Двоичный файл — это файл любого типа, кроме текстового. Из-за своей природы двоичные файлы могут обрабатываться только приложением, которое знает или понимает структуру файла. Другими словами, это должны быть приложения, которые могут читать и интерпретировать двоичные файлы.
Чтение файлов в Python
В Python файлы считываются с помощью метода open(). Это один из встроенных методов Python, созданный для открытия файлов.
Функция open() принимает два аргумента: имя файла и режим открытия файла. Имя файла указывает на путь к файлу на вашем компьютере, а режим открытия файла используется, чтобы сообщить функции open(), как мы планируем взаимодействовать с файлом.
По умолчанию режим открытия файла установлен только для чтения, что означает, что у нас будет разрешение только на открытие и проверку содержимого файла.
На моем компьютере есть папка PythonForBeginners. В этой папке три файла. Один из них представляет собой текстовый файл с именем emily_dickinson.txt, а два других — файлы Python: read.py и write.py.
Текстовый файл содержит следующее стихотворение, написанное поэтессой Эмили Дикинсон. Возможно, мы работаем над поэтической программой и храним наши стихи в виде файлов на компьютере.
Успех считается самым сладким
Тот, кто никогда не добивался успеха.
Постичь нектар
Требуется крайняя необходимость.
Ни один из всех Пурпурных Воин
Кто взял Флаг сегодня
Не может назвать определение
Так ясно, что победа
Как победил, умирая
На чьем запретном ухе
Дальние звуки триумфа
Взрыв мучительный и ясный.
Прежде чем мы сможем что-либо сделать с содержимым файла стихотворения, нам нужно сообщить Python, чтобы он открыл его. Файл read.py содержит весь код Python, необходимый для чтения стихотворения.
Для написания кода можно использовать любой текстовый редактор. Я использую редактор кода Atom, который я предпочитаю для работы с Python.
Я использовал комментарии Python для объяснения каждого шага в коде. Перейдите по этой ссылке, чтобы узнать больше о том, что такое комментарий Python.
В приведенном выше примере показано, как с помощью простого цикла в Python можно прочитать содержимое файла.
Когда дело доходит до чтения файлов, Python позаботится об этом за кулисами. Запустите сценарий, перейдя к файлу с помощью командной строки или терминала и введя «python», а затем имя файла.
Пользователи Windows. Прежде чем использовать ключевое слово python в командной строке, необходимо настроить переменные среды. Это должно было произойти автоматически при установке Python, но если этого не произошло, вам может потребоваться сделать это вручную.
Данные, предоставляемые методом open(), обычно сохраняются в новой переменной. В этом примере содержимое стихотворения хранится в переменной «myfile».
После создания файла мы можем использовать цикл for для чтения каждой строки в файле и вывода его содержимого в командную строку.
Это очень простой пример того, как открыть файл в Python, но учащиеся должны знать, что метод open() достаточно мощный. Для некоторых проектов это будет единственное, что нужно для чтения и записи файлов с помощью Python.
Написание файлов на Python
Прежде чем мы сможем записать файл в Python, его нужно сначала открыть в другом режиме открытия файла. Мы можем сделать это, предоставив методу open() специальный аргумент.
В Python запись в файл выполняется с помощью метода open(). Вам потребуется передать как имя файла, так и специальный символ, сообщающий Python, что мы собираемся выполнить запись в файл.
Добавьте следующий код в write.py. Мы укажем Python найти файл с именем «sample.txt» и перезаписать его содержимое новым сообщением.
Передача ‘w’ методу open() указывает Python открыть файл в режиме записи. В этом режиме любые данные, уже находящиеся в файле, теряются при записи новых данных.
Если файл не существует, Python создаст новый файл. В этом случае при запуске программы будет создан новый файл с именем «sample.txt».
Запустите программу с помощью командной строки:
Python также может записывать в файл несколько строк. Проще всего это сделать с помощью метода writelines().
Мы также можем записать несколько строк в файл, используя специальные символы:
Использование конкатенации строк позволяет Python сохранять текстовые данные различными способами.
Однако, если бы мы хотели избежать перезаписи данных в файле, а вместо этого добавить или изменить их, нам пришлось бы открывать файл, используя другой режим открытия файла.
Режимы открытия файлов
По умолчанию Python открывает файл в режиме только для чтения. Если мы хотим сделать что-то кроме чтения файла, нам нужно будет вручную указать Python, что мы собираемся с ним делать.
- ‘r’ — режим чтения: это режим по умолчанию для open(). Файл открывается, и указатель устанавливается в начале содержимого файла.
- «w» — режим записи: при использовании этого режима любой существующий контент в файле будет перезаписан. Если данный файл не существует, будет создан новый.
- «r+» — режим чтения/записи: используйте этот режим, если вам нужно одновременно читать и записывать в файл.
- «a» — режим добавления: в этом режиме пользователь может добавлять данные, не перезаписывая уже существующие данные в файле.
- «a+» — режим добавления и чтения: в этом режиме вы можете читать и добавлять данные без перезаписи исходного файла.
- «x» — эксклюзивный режим создания: этот режим предназначен исключительно для создания новых файлов. Используйте этот режим, если вы заранее знаете, что файл для записи не существует.
Примечание. В этих примерах предполагается, что пользователь работает с текстовыми файлами. Если предполагается чтение или запись в файл двоичного типа, в метод open() необходимо передать дополнительный аргумент: символ «b».
Закрытие файлов с помощью Python
После открытия файла в Python важно закрыть его после завершения работы с ним. Закрытие файла гарантирует, что программа больше не сможет получить доступ к его содержимому.
Закройте файл с помощью метода close().
Открытие других типов файлов
Метод open() может читать и записывать файлы различных типов. Мы видели, как открывать двоичные файлы и текстовые файлы. Python также может открывать изображения, позволяя вам просматривать и редактировать их пиксельные данные.
Прежде чем Python сможет открыть файл изображения, необходимо установить библиотеку Pillow (библиотека изображений Python). Этот модуль проще всего установить с помощью pip.
Установив Pillow, Python может открывать файлы изображений и читать их содержимое.
Библиотека Pillow включает мощные инструменты для редактирования изображений. Это сделало ее одной из самых популярных библиотек Python.
С заявлением
Вы также можете работать с файловыми объектами, используя оператор with. Он предназначен для обеспечения гораздо более чистого синтаксиса и обработки исключений при работе с кодом. Это объясняет, почему рекомендуется использовать оператор with там, где это применимо.
Одним из преимуществ использования этого метода является то, что все открытые файлы будут автоматически закрыты после того, как вы закончите. Это позволяет меньше беспокоиться во время очистки.
Чтобы использовать оператор with для открытия файла:
Теперь, когда вы понимаете, как вызывать это выражение, давайте рассмотрим несколько примеров.
При использовании этого оператора вы также можете вызывать другие методы. Например, вы можете сделать что-то вроде цикла по файловому объекту:
Вы также заметите, что в приведенном выше примере мы не использовали метод «file.close()», потому что оператор with автоматически вызовет его для нас при выполнении. Это действительно упрощает задачу, не так ли?
Разделение строк в текстовом файле
В качестве последнего примера рассмотрим уникальную функцию, позволяющую разделить строки, взятые из текстового файла. Это предназначено для разделения строки, содержащейся в переменных данных, всякий раз, когда интерпретатор встречает символ пробела.
Но то, что мы собираемся использовать его для разделения строк после пробела, не означает, что это единственный способ. На самом деле вы можете разделить текст, используя любой символ, какой пожелаете, например, двоеточие.
Код для этого (также с использованием оператора with):
Если вы хотите использовать двоеточие вместо пробела для разделения текста, вы просто замените line.split() на line.split(“:”).
Вывод для этого будет:
Причина, по которой слова представлены таким образом, заключается в том, что они сохраняются и возвращаются в виде массива. Обязательно помните об этом при работе с функцией разделения.
Заключение
Чтение и запись файлов в Python требует понимания метода open(). Благодаря универсальности этого метода можно читать, писать и создавать файлы в Python.
Файлы Python могут быть текстовыми или двоичными файлами. Также можно открывать и редактировать данные изображения с помощью модуля Pillow.
После того как данные файла загружены в Python, практически нет конца тому, что с ними можно сделать. Программисты часто работают с большим количеством файлов, используя программы для их автоматического создания.
Как и в случае с любым другим уроком, в отведенном для этого месте можно охватить только ограниченное пространство. Надеюсь, вы узнали достаточно, чтобы начать читать и писать файлы на Python.
Читайте также: