Как открыть файл для чтения

Обновлено: 02.07.2024

В 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:

Как создать текстовый файл в Python

Когда вы нажмете на свой текстовый файл, в нашем случае «guru99.txt», он будет выглядеть примерно так

Как создать текстовый файл в Python

Как добавить текстовый файл в Python

Вы также можете добавить новый текст в уже существующий файл или в новый файл.

Шаг 1)

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

Шаг 2)

Это запишет данные в файл в режиме добавления.

Как добавить текстовый файл в Python

Вы можете увидеть результат в файле «guru99.txt». Вывод кода состоит в том, что к предыдущему файлу добавляются новые данные с помощью операции Python append to file.

Пример добавления текстового файла в Python

Как читать файлы в Python

Вы можете прочитать файл в Python, вызвав файл .txt в «режиме чтения»(r).

Шаг 1. Откройте файл в режиме чтения

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

Шаг 3) Используйте f.read для чтения данных файла и сохранения их в переменном содержимом для чтения файлов в Python

Шаг 4) Распечатайте содержимое текстового файла чтения Python

Вот результат чтения примера файла 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.

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

Видео: чтение и запись файлов в Python

Файлы

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

Поскольку оперативная память (ОЗУ) энергозависима (данные теряются при выключении компьютера), мы используем файлы для будущего использования данных, сохраняя их на постоянной основе.

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

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

  1. Открыть файл
  2. Чтение или запись (выполнение операции)
  3. Закройте файл

Открытие файлов в Python

В Python есть встроенная функция open() для открытия файла. Эта функция возвращает файловый объект, также называемый дескриптором, поскольку он используется для чтения или изменения файла соответствующим образом.

Мы можем указать режим при открытии файла. В режиме мы указываем, хотим ли мы читать r, писать w или добавлять a к файлу. Мы также можем указать, хотим ли мы открыть файл в текстовом или двоичном режиме.

По умолчанию чтение осуществляется в текстовом режиме. В этом режиме мы получаем строки при чтении из файла.

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

< td>Открывает файл для обновления (чтения и записи)
Режим Описание
r Открывает файл для чтения. (по умолчанию)
w Открывает файл для записи. Создает новый файл, если он не существует, или обрезает файл, если он существует.
x Открывает файл для монопольного создания. Если файл уже существует, операция завершается ошибкой.
a Открывает файл для добавления в конец файла без его усечения. Создает новый файл, если он не существует.
t Открывается в текстовом режиме. (по умолчанию)
b Открывается в двоичном режиме.
+

В отличие от других языков, символ 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 по чтению и записи файлов. Но прежде чем читать это, давайте углубимся в тот минимум, который я хочу, чтобы вы знали.

Давайте сразу перейдем к примеру кода. Представьте, что у вас есть файл с именем 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 или что угодно. Добавьте к нему текст и сохраните его.

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

image desktop-whateverdude.jpg

Хорошо, теперь вернитесь к интерактивной оболочке 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():

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

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

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

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

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