Как открыть простой файл

Обновлено: 21.11.2024

В этом руководстве вы узнаете об обработке файлов в C. Вы научитесь обрабатывать стандартный ввод-вывод в C с помощью функций fprintf(), fscanf(), fread(), fwrite(), fseek() и т. д. помощь примеров.

Файл — это контейнер на компьютерных запоминающих устройствах, используемый для хранения данных.

Зачем нужны файлы?

  • При завершении программы все данные теряются. Сохранение в файле сохранит ваши данные, даже если программа завершит работу.
  • Если вам нужно ввести большое количество данных, ввод их всех займет много времени.
    Однако, если у вас есть файл, содержащий все данные, вы можете легко получить доступ к содержимому файла с помощью нескольких команд на языке C.
  • Вы можете легко перенести свои данные с одного компьютера на другой без каких-либо изменений.

Типы файлов

При работе с файлами необходимо знать два типа файлов:

1. Текстовые файлы

Текстовые файлы — это обычные файлы .txt. Вы можете легко создавать текстовые файлы с помощью любых простых текстовых редакторов, таких как Блокнот.

Когда вы откроете эти файлы, вы увидите все содержимое файла в виде обычного текста. Вы можете легко редактировать или удалять содержимое.

Они требуют минимальных усилий для обслуживания, легко читаются, обеспечивают наименьшую безопасность и занимают больше места для хранения.

2. Бинарные файлы

Двоичные файлы — это в основном файлы .bin на вашем компьютере.

Вместо того, чтобы хранить данные в виде обычного текста, они хранят их в двоичной форме (0 и 1).

Они могут содержать больший объем данных, их нелегко читать, и они обеспечивают более высокий уровень безопасности, чем текстовые файлы.

Операции с файлами

В C вы можете выполнять четыре основные операции с файлами, текстовыми или двоичными:

  1. Создание нового файла
  2. Открытие существующего файла
  3. Закрытие файла
  4. Чтение и запись информации в файл

Работа с файлами

При работе с файлами необходимо объявить указатель типа файл. Это объявление необходимо для связи между файлом и программой.

Открытие файла — для создания и редактирования

Открытие файла выполняется с помощью функции fopen(), определенной в заголовочном файле stdio.h.

Синтаксис открытия файла в стандартном вводе-выводе:

  • Предположим, что файл newprogram.txt не существует в папке E:\cprogram. Первая функция создает новый файл с именем newprogram.txt и открывает его для записи в соответствии с режимом 'w'.
    Режим записи позволяет создавать и редактировать (перезаписывать) содержимое файла.
  • Теперь предположим, что второй двоичный файл oldprogram.bin существует в папке E:\cprogram. Вторая функция открывает существующий файл для чтения в бинарном режиме 'rb'.
    Режим чтения позволяет только читать файл, вы не можете записывать в файл.

Закрытие файла

Файл (как текстовый, так и двоичный) должен быть закрыт после чтения/записи.

Закрытие файла выполняется с помощью функции fclose().

Здесь fptr — это указатель файла, связанный с файлом, который нужно закрыть.

Чтение и запись в текстовый файл

Для чтения и записи в текстовый файл мы используем функции fprintf() и fscanf().

Это просто версии файлов printf() и scanf() . Единственное отличие состоит в том, что fprintf() и fscanf() ожидают указатель на структуру FILE.

Пример 1. Запись в текстовый файл

Эта программа получает номер от пользователя и сохраняет его в файле program.txt .

После того, как вы скомпилируете и запустите эту программу, вы увидите текстовый файл program.txt, созданный на диске C вашего компьютера. Когда вы откроете файл, вы увидите введенное целое число.

Пример 2. Чтение из текстового файла

Эта программа считывает целое число из файла program.txt и выводит его на экран.

Если вы успешно создали файл из примера 1, запустив эту программу, вы получите введенное целое число.

Другие функции, такие как fgetchar() , fputc() и т. д., можно использовать аналогичным образом.

Чтение и запись в двоичный файл

Функции fread() и fwrite() используются для чтения и записи в файл на диске соответственно в случае двоичных файлов.

Запись в двоичный файл

Для записи в двоичный файл необходимо использовать функцию fwrite(). Функции принимают четыре аргумента:

  1. адрес данных для записи на диск
  2. размер данных для записи на диск
  3. количество таких данных
  4. указатель на файл, в который вы хотите записать.

Пример 3. Запись в двоичный файл с помощью fwrite()

В этой программе мы создаем новый файл program.bin на диске C.

Мы объявляем структуру threeNum с тремя числами — n1, n2 и n3 и определяем ее в основной функции как num.

Теперь внутри цикла for мы сохраняем значение в файле с помощью fwrite() .

Первый параметр принимает адрес num, а второй параметр принимает размер структуры threeNum .

Поскольку мы вставляем только один экземпляр num , третий параметр равен 1 . И последний параметр *fptr указывает на файл, в котором мы сохраняем данные.

Наконец, мы закрываем файл.

Чтение из двоичного файла

Функция fread() также принимает 4 аргумента, как и функция fwrite(), описанная выше.

Пример 4. Чтение из двоичного файла с помощью функции fread()

В этой программе вы читаете один и тот же файл program.bin и перебираете записи одну за другой.

Проще говоря, вы читаете одну запись threeNum размера threeNum из файла, на который указывает *fptr, в структуру num .

Вы получите те же записи, что и в примере 3.

Получение данных с помощью fseek()

Если у вас есть много записей в файле и вам нужно получить доступ к записи в определенной позиции, вам нужно пройтись по всем записям перед этим, чтобы получить запись.

Это приведет к потере большого количества памяти и рабочего времени. Более простой способ получить необходимые данные можно с помощью fseek() .

Как следует из названия, fseek() ищет курсор для данной записи в файле.

Синтаксис fseek()

Первый поток параметров — это указатель на файл. Второй параметр — это позиция искомой записи, а третий параметр указывает место, где начинается смещение.

Предположим, у нас есть следующий файл, расположенный в той же папке, что и Python:

Чтобы открыть файл, используйте встроенную функцию open().

Функция open() возвращает файловый объект, у которого есть метод read() для чтения содержимого файла:

Пример

Если файл находится в другом месте, вам нужно будет указать путь к файлу, например:

Пример

Открыть файл в другом месте:

Только чтение частей файла

По умолчанию метод read() возвращает весь текст, но вы также можете указать, сколько символов вы хотите вернуть:

Пример

Вернуть 5 первых символов файла:

Читать строки

Вы можете вернуть одну строку с помощью метода readline():

Пример

Прочитать одну строку файла:

Вызвав readline() два раза, вы сможете прочитать две первые строки:

Пример

Прочитать две строки файла:

Прокручивая строки файла, вы можете прочитать весь файл, строка за строкой:

Пример

Построчный просмотр файла:

Закрыть файлы

Рекомендуется всегда закрывать файл, когда вы закончите с ним работать.

Пример

Закройте файл, когда закончите с ним:

Примечание. Вы всегда должны закрывать свои файлы, в некоторых случаях из-за буферизации изменения, внесенные в файл, могут не отображаться, пока вы не закроете файл.

Мы только что запустили
видео W3Schools

ПИКЕР ЦВЕТА

Получите сертификат
пройдя курс
сегодня!

КОД ИГРА

Сообщить об ошибке

Если вы хотите сообщить об ошибке или сделать предложение, не стесняйтесь отправить нам электронное письмо:

Спасибо за помощь!

Ваше сообщение было отправлено в W3Schools.

Лучшие учебные пособия
Лучшие ссылки
Лучшие примеры
Веб-курсы

W3Schools оптимизирована для обучения и повышения квалификации. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, политику конфиденциальности и файлы cookie.

Открытие файлов и чтение их данных — это то, что мы научились делать с помощью простого двойного щелчка при самом раннем взаимодействии с компьютером. Однако на программном уровне все существенно сложнее…

Вот официальная документация Python по чтению и записи файлов. Но прежде чем читать это, давайте углубимся в тот минимум, который я хочу, чтобы вы знали.

Давайте сразу перейдем к примеру кода. Представьте, что у вас есть файл с именем example.txt в текущем каталоге. Если нет, просто создайте его, а затем заполните его этими строками и сохраните:

Вот короткий фрагмент кода Python, чтобы открыть этот файл и распечатать его содержимое на экране. Обратите внимание, что этот код Python должен выполняться в том же каталоге, где находится файл example.txt.

Это показалось слишком сложным? Вот менее подробная версия:

Вот как читать этот файл построчно, используя цикл for:

(Примечание: если вы уже получаете сообщение об ошибке FileNotFoundError — этого почти следовало ожидать. Продолжайте читать!)

Все еще кажется слишком сложным?Что ж, нельзя обойти стороной тот факт, что на программном уровне открытие файла отличается от чтения его содержимого. Мало того, мы также должны вручную закрыть файл.

А теперь давайте рассмотрим это шаг за шагом.

Чтобы открыть файл, мы просто используем метод open() и передаем в качестве первого аргумента имя файла:

Это кажется достаточно простым, так что давайте перейдем к некоторым распространенным ошибкам.

Как напортачить при открытии файла

Вероятно, это самая распространенная ошибка, которая возникает при попытке открыть файл.

На самом деле, я видел, как студенты тратили десятки часов, пытаясь пройти мимо этого сообщения об ошибке, потому что они не останавливались, чтобы прочитать его. Итак, прочтите: что означает FileNotFoundError?

Попробуйте поставить пробелы там, где заглавные буквы:

Вы получите эту ошибку, потому что попытались открыть файл, которого просто не существует. Иногда это простая опечатка, когда вы пытаетесь открыть() файл с именем "example.txt", но случайно пишете его как "exmple.txt" .

Но чаще всего это происходит потому, что вы знаете, что файл существует под заданным именем файла, например "example.txt", но как ваш код Python узнает, где находится этот файл? Это «example.txt», который существует в вашей папке «Загрузки»? Или тот, который может существовать в папке «Документы»? Или тысячи других папок на вашем компьютере?

Это довольно сложный вопрос. Но первый шаг к тому, чтобы не тратить время попусту, заключается в том, что если вы когда-нибудь увидите эту ошибку, прекратите все, что вы делаете. Не настраивайте свой запутанный цикл for. Не пытайтесь установить новую библиотеку Python. Не перезагружайте компьютер, а затем повторно запустите скрипт, чтобы посмотреть, устранится ли ошибка волшебным образом.

Ошибка FileNotFoundError возникает из-за того, что вы либо не знаете, где на самом деле находится файл на вашем компьютере. Или, даже если вы знаете, вы не знаете, как сообщить вашей программе Python, где она находится. Не пытайтесь исправить другие части кода, не связанные с указанием имен файлов или путей.

Как исправить ошибку FileNotFoundError

Вот надежное решение: убедитесь, что файл действительно существует.

Давайте начнем с нуля, допустив ошибку. В системной оболочке (например, в терминале) перейдите в папку на рабочем столе:

Теперь запустите ipython:

Теперь, когда вы находитесь в интерактивном интерпретаторе Python, попробуйте открыть файл с именем, которое, как вы знаете, не существует на вашем рабочем столе, а затем насладитесь сообщением об ошибке:

Теперь вручную создайте файл на рабочем столе, используя Sublime Text 3 или что угодно. Добавьте к нему текст и сохраните его.

Посмотрите и убедитесь сами, что этот файл действительно существует в папке вашего рабочего стола:

Хорошо, теперь вернитесь к интерактивной оболочке Python (т. е. ipython), которую вы открыли после перехода в папку рабочего стола (т. е. cd ~/Desktop ). Повторно запустите эту команду open(), которая привела к ошибке FileNotFoundError:

Надеюсь, вы не получите ошибку.

Но что это за объект, на который указывает переменная myfile? Используйте метод type(), чтобы выяснить это:

И что это это? Детали не важны, за исключением того, что myfile определенно не является просто строковым литералом, то есть str .

Используйте автозаполнение Tab (т. е. введите myfile. ), чтобы получить список существующих методов и атрибутов для объекта myfile:

Ну, мы можем делать с файлами намного больше, чем просто читать из них(). Но давайте пока сосредоточимся только на чтении.

Предполагая, что переменная myfile указывает на какой-то файловый объект, вот как вы читаете из него:

Что находится в этой переменной mystuff? Снова используйте функцию type():

Это просто строка. Это, конечно же, означает, что мы можем его распечатать:

Или посчитайте количество символов:

Или распечатайте его заглавными буквами:

И это все, что нужно для чтения из открытого файла.

Теперь об ошибках.

Как ошибиться при чтении из файла

Вот очень, очень распространенная ошибка:

Вывод ошибки:

Обратите внимание, что это не ошибка FileNotFoundError. Это AttributeError — что, правда, не очень понятно — но читайте следующую часть:

Сообщение об ошибке попадает в точку: объект str — т. е. строковый литерал, например. что-то вроде "hello world" не имеет атрибута чтения.

Пересмотр ошибочного кода:

Если имя файла указывает на "example.txt", то имя файла является просто объектом str.

Другими словами, имя файла не является файловым объектом. Вот более наглядный пример ошибочного кода:

И бить в точку про голову:

Почему это такая распространенная ошибка? Потому что в 99% наших типичных взаимодействий с файлами мы видим имя файла в графическом интерфейсе нашего рабочего стола и дважды щелкаем это имя файла, чтобы открыть его.Графический интерфейс запутывает процесс — и не зря. Кого волнует, что происходит, если мой файл открывается, когда я дважды щелкаю по нему!

К сожалению, нам приходится проявлять осторожность при попытке чтения файла программным способом. Открытие файла — это отдельная операция от его чтения.

  • Вы открываете файл, передавая его имя файла – например, example.txt — в функцию open(). Функция open() возвращает файловый объект.
  • Чтобы фактически прочитать содержимое файла, вы вызываете метод read() этого файлового объекта.

Опять же, вот код, но немного более подробный:

Файловый объект также имеет метод close(), который формально очищает открытый файл и позволяет другим программам безопасно обращаться к нему. Опять же, это низкоуровневая деталь, о которой вы никогда не думаете в повседневных вычислениях. На самом деле, это то, что вы, вероятно, забудете в контексте программирования, поскольку не закрытие файла ничего автоматически не сломает (по крайней мере, пока мы не начнем выполнять гораздо более сложные типы файловых операций, по крайней мере…) . Как правило, после завершения скрипта все незакрытые файлы автоматически закрываются.

Однако мне нравится закрывать файл явным образом — не только из соображений безопасности, но и для закрепления концепции файлового объекта.

Одним из преимуществ более детального изучения открытия и чтения файлов является то, что теперь у нас есть возможность читать файлы построчно, а не одним гигантским фрагментом. Опять же, чтобы прочитать файлы как один гигантский фрагмент содержимого, используйте метод read():

Сейчас это не кажется такой уж большой проблемой, но это потому, что example.txt, вероятно, содержит всего несколько строк. Но когда мы имеем дело с огромными файлами — такими как все 3,3 миллиона записей о всех, кто пожертвовал более 200 долларов одному комитету президентской кампании в США в 2012 году или о всех, кто когда-либо посещал Белый дом, — открывается и чтение файла сразу заметно медленнее. И это может даже привести к сбою вашего компьютера.

Если вам интересно, почему в программах для работы с электронными таблицами, таких как Excel, существует ограничение на количество строк (примерно 1 000 000), то это потому, что большинство пользователей делают работу с файлом данных одновременно. Однако многие интересные файлы данных слишком велики для этого. Мы столкнемся с этими сценариями позже в этом квартале.

На данный момент вот как обычно выглядит построчное чтение:

Поскольку каждая строка в текстовом файле имеет символ новой строки (который представлен как \n, но обычно является «невидимым»), вызов функции print() приведет к созданию вывода с двойным интервалом, поскольку print() добавляет новую строку к тому, что он выводит (т.е. вернитесь к исходной программе print("hello world")).

Чтобы избавиться от этого эффекта, вызовите метод strip(), принадлежащий объектам str и удаляющий пробельные символы с левой и правой стороны текстовой строки:

И, конечно же, вы можете сделать вещи громче с помощью старой доброй функции upper():

Это пока. Мы не рассмотрели, как писать в файл (что является гораздо более опасной операцией) — я оставлю это для отдельного урока. Но достаточно знать, что, работая с файлами как программист, мы должны быть более точными и конкретными в шагах.

Справочники и связанные материалы

Существует несколько способов представления вывода программы; данные могут быть распечатаны в удобочитаемой форме или записаны в файл для будущего использования. В этой главе обсуждаются некоторые возможности.

Вычислительные методы в гражданской сфере созданы Дэном Нгуеном в качестве онлайн-справочника для Стэнфордской лаборатории вычислительной журналистики и программы магистратуры по журналистике.

При работе с 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.

Читайте также: