Понимание работы с файлами в Python с примерами

проекты Python Изучение

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

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

Обработка файлов в Python: файлы и пути к файлам

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

Использование модуля ОС

Python предоставляет встроенный модуль ОС для взаимодействия с операционной системой нашего компьютера. Модуль ОС имеет интерфейсы (функции), которые помогают выполнять такие операции, как навигация по каталогам и файлам в Python, создание папок, определение путей к файлам и т. д.

Чтобы использовать модуль ОС, мы импортируем его в нашу программу, как показано ниже:

import os

Как получить текущий рабочий каталог

Мы можем получить текущий рабочий каталог («cwd») в Python, используя getcwd()метод. Этот метод возвращает путь к каталогу, в котором мы сейчас работаем, в виде строки, как показано во фрагменте кода ниже:

import os 

directory = os.getcwd()
print(directory)
>>>>
/home/ini/Dev/Tutorial/sitepoint

Абсолютные и относительные пути

Пути к файлам можно указать двумя способами: либо по их абсолютному пути, либо по их относительному пути. Оба пути указывают на текущее местоположение файла.

Абсолютный путь файла объявляет его путь, начиная с корневой папки. Абсолютный путь выглядит так:

/home/ini/Dev/Tutorial/sitepoint/filehandling.py

Корневая папка (как показано в приведенном выше коде) находится homeв ОС Linux.

Относительный путь файла объявляет его путь относительно текущего рабочего каталога. Давайте посмотрим пример:

./sitepoint/filehandling.py

Код выше показывает относительный путь к файлу Python filehandling.py.

Как создать каталог в Python

Модуль ОС имеет mkdir()метод создания новых папок или каталогов в Python. Метод mkdir()принимает один аргумент — имя каталога — который должен быть создан в текущем каталоге в качестве поведения по умолчанию. См. код ниже:

import os

os.mkdir("photos")

Однако мы можем создавать каталоги в другом месте, указав путь к файлу. В приведенном ниже примере кода projectsпапка создается в Tutorialпапке:

os.mkdir("/home/ini/Dev/Tutorial/projects")

Когда мы проверим внутри Tutorialпапки, мы найдем только что созданную projectsпапку.

Как изменить текущий рабочий каталог

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

Читайте также:  Как сделать анимированный GIF в Ubuntu?

После создания новой папки в предыдущем примере кода мы можем изменить каталог на projectsпапку:

import os

os.chdir("/home/ini/Dev/Tutorial/projects")

Для подтверждения смены каталога используйте getcwd()метод, возвращающий строку текущего рабочего каталога: /home/ini/Dev./Tutorial/projects.

Как удалить файлы или каталоги в Python

Файлы и каталоги могут быть удалены в Python с использованием модулей ОС remove()и rmdir()методов соответственно.

Чтобы удалить файлы в Python, введите путь к файлу в os.remove()методе. При удалении файлов, если файл не существует, программа выдаст файл FileNotFoundError.

Возьмем пример кода:

import os

os.remove("random.txt")

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

import os

os.rmdir("/home/ini/Dev/Tutorial/projects")

Папка projectsудаляется из Tutorialпапки.

Как составить список файлов и каталогов в Python

Чтобы получить обзор всего содержимого каталога, используйте os.listdir()метод. Этот метод возвращает список всех существующих файлов и каталогов в этой конкретной папке:

import os

print(os.listdir())
>>>>
['array.py', 'unittesting.py', 'search_replace.py', '__pycache__', 'pangram.txt', '.pytest_cache', 'exception.py', 'files.py', 'regex.py', 'filehandling.py']

Работа с файлами в Python: чтение и запись данных

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

  • r: открывает файл для чтения. Режим чтения выдает ошибку, когда файл не существует.
  • r+: открывает файл для чтения и записи данных в файловый объект. Выдается ошибка, если файл не существует.
  • w: в этом режиме открывается файл для записи данных. Режим записи переопределяет существующие данные и создает новый файловый объект, если он не существует.
  • w+: открывает файл для чтения и записи данных. Существующие данные в файле переопределяются при открытии в этом режиме.
  • a: режим добавления добавляет к файлу, если файл существует. Он также создает новый файл, если существующий файл отсутствует. Он не переопределяет существующие данные.
  • a+: этот режим открывает файл для добавления и чтения данных.
  • x: режим создания используется для создания файлов в Python. Выдается ошибка, если файл существует.

Добавление bк любому из режимов доступа изменяет его текстовый формат по умолчанию на двоичный формат (например, rb, rb+, wbи т. д.).

Как открыть файл в Python

Чтобы открыть файл в Python, используется open()функция. Он принимает как минимум два аргумента — имя файла и описание режима — и возвращает файловый объект. По умолчанию файл открывается для чтения в текстовом режиме, но мы можем указать, хотим ли мы вместо этого двоичный режим.

Простой синтаксис для открытия файла выглядит так:

f = open('filename', 'mode')

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

Как закрыть файл в Python

После открытия файлового объекта и выполнения операций по обработке файла мы закрываем файл. Часто это последний шаг в чтении или записи файлов в Python. Метод файлового объекта close()используется для закрытия ранее открытых файлов.

Закрытие файлов в Python выглядит так:

f = open('filename', 'mode')
// file operations, reading, writing or appending
f.close()

The with statement

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

Оператор withавтоматически закрывает файлы после завершения последней операции обработки файлов в своей области. Например:

with open('random.txt', 'r') as f:
    print(f.read())
>>>>
Hello world!
Hello world!

Как видно из приведенного выше фрагмента кода, withоператор неявно закрывает файл после printоператора.

Читайте также:  3 особенности, которые новички упускают из виду при создании API

Как прочитать файл в Python

В Python есть несколько способов чтения данных из файла. Мы можем прочитать содержимое файла, используя методы read(), readline()и.readlines()

Метод read()_

Метод read()возвращает строку всех символов читаемого файла. Указатель помещается в начало содержимого файла. Режим по умолчанию — чтение с начала файла до конца, за исключением случаев, когда указано количество символов.

Взгляните на фрагмент кода ниже:

f = open('random.txt', 'r')
print(f.read())
f.close()
>>>>
This is some random text.
Here is the second line.
The sky is blue.
Roses are red.

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

f = open('random.txt', 'r')
print(f.read(12))
f.close()
>>>>
This is some

Как видно из приведенного выше примера, интерпретатор читает только двенадцать символов из всего файла.

Метод readline()_

Этот метод считывает по одной строке из файла за раз. Он читает с начала файла и останавливается там, где встречается символ новой строки. См. пример кода ниже:

f = open('random.txt', 'r')
print(f.readline())
f.close()
>>>>
This is some random text.

The readlines() method

Этот метод возвращает список всех строк из существующего читаемого файла. См. фрагмент кода ниже:

f = open('random.txt', 'r')
print(f.readlines())
f.close()
>>>>
['This is some random text.\n', 'Here is the second line.\n', 'The sky is blue.\n', 'Roses are red.']

Примечание: все методы чтения файлового потока возвращают пустое значение при достижении конца файла. Метод seek()возвращает файловый курсор в начало файла.

Как записать в файл в Python

Этот write()метод в Python полезен при попытке записать данные в файл. Для записи в открытый файл необходимо установить один из следующих режимов доступа: w, w+, a, a+, и т.д. Опять же, по умолчанию используется текстовый режим, а не двоичный.

Метод write()_

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

f = open('random.txt', 'w')
f.write("Hello world!")
f.close()

Метод writelines()_

Этот метод помогает нам вставить сразу несколько строк в текстовый файл. Мы можем записать несколько строк строк в файл за один раз, передав список в качестве аргумента метода:

words = ['The sky is blue', '\nRoses are red']

f = open('random.txt', 'w')
f.writelines(words)
f.close()

В приведенном выше коде показано, как открывается закрытый файл и несколько строк из списка слов одновременно вставляются в random.txtтекстовый файл.

Заключение

У файла есть два важных атрибута: имя файла и путь к нему. Модуль ОС помогает нам перемещаться по каталогам и выполнять определенные операции. Обработка файлов Python включает использование нескольких методов для открытия, создания, чтения и записи данных в файловых объектах.

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

Оцените статью
bestprogrammer.ru
Добавить комментарий