Import os python что это

Модуль os предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. Здесь будут приведены наиболее часто используемые из них.

Будьте внимательны: некоторые функции из этого модуля поддерживаются не всеми ОС.

Данный модуль можно применять во многих случаях. В данном разделе мы не рассмотрим каждый из них. Вместо этого, мы рассмотрим, как именно его можно применять, а также ознакомимся с подмодулем, под названием os.path. В частности, мы расскажем о:

Это может выглядеть как большой объем материала, но есть еще минимум десяток других задач, которые модуль os может выполнять. Так что данный раздел можно назвать кратким экскурсом. Для использования любого из методов, упомянутых в данном разделе, вам нужно импортировать модуль os, вот так:

os.name

Модуль os обладает как вызываемыми функциями, так и обычными значениями. В случае с os.name, речь идет только о значениях. При доступе к os.name, вы получите информацию о том, с какой платформой вы работаете. Вам откроются следующие значения: ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’. Давайте посмотрим на то, что выйдет, если запустить его на Windows 7:

Это говорит нам о том, что наш экземпляр Пайтон работает в окне Windows. Как мы об этом узнали? Майкрософт начали называть свою операционную систему NT много лет назад. Например, Windows 7 также носит имя Windows NT 6.1.

os.environ, os.getenv() и os.putenv()

Значение os.environ известно как объект мэппинга (сопоставления), который работает со словарем переменных пользовательской среды. Возможно вы не знали, но каждый раз, когда вы пользуетесь своим компьютером, некоторые переменные среды уже установлены.

Это дает вам полезную информацию, такую как количество процессоров, тип ОЗУ, имя компьютера, и так далее. Посмотрим, что мы сможем узнать о нашем компьютере:

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

Читайте также:  Как обойти закрытый доступ к сайту

Вы также можете использовать функцию os.getenv для доступа к этой переменной:

Полезность использования os.getenv() вместо словаря os.environ заключается в том, что если вы находитесь в положении, когда вам нужно получить доступ к переменной среды, которая не существует, функция getenv попросту ничего не сделает. Если вы попытаетесь сделать то же самое, пользуясь os.environ, вы получите уведомление об ошибке. Давайте попробуем на примере:

Результат выполнения данного скрипта:

os.chdir() и os.getcwd()

Функция os.chdir позволяет нам вносить изменения в каталоге, который мы в данный момент используем в сессии. Если вам нужно знать, какой путь вы в данный момент используете, для этой нужно вызвать os.getcwd(). Попробуем воспользоваться обоими модулями:

Указанный код демонстрирует нам, что мы открыли директорию по умолчанию в Пайтоне, после запуска данного кода в IDLE. После этого мы изменили папки, при помощи os.chdir(). Наконец, мы вызывали os.getcwd() еще раз, чтобы убедиться, что все изменения были выполнены правильно.

os.mkdir() и os.makedirs()

Как вы могли догадаться, эти два метода используются для создания папок. Первая, os.mkdir(), позволяет создать одну папку. Попробуем:

Первая строка кода создает папку под названием test в определенном каталоге. Вы можете использовать эти модули в предыдущем разделе, чтобы узнать, где именно вы запустили свой код, на случай, если вы забыли. Во втором примере мы назначили путь к переменной, затем к os.mkdir(). Это позволяет вам создать папку в любой точке вашей системы, где есть доступ. Функция os.makedirs() создает промежуточные папки в пути, если их там нет. В целом, это значит, что вы создали путь, в котором размещены папки. Лично я часто прибегал к данному решению, когда была необходимость создания журнала, с датированной структурой, например ГодМесяцДень. Давайте взглянем на пример:

Что произошло? Этот код просто создал кучу папок! Если в вашей системе все еще есть папка pytest, то в ней появится папка 2014, в которой также есть папка, в которой, удивительно, находится еще одна. Попробуйте сами, воспользовавшись рабочим путем в вашей системе.

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

Читайте также:  Что такое на карте сбербанк cvv2 cvc2

Некоторые основные функции

Давайте рассмотрим модуль с примером кода.

Давайте получим список методов, которые мы можем использовать с этим модулем.

Теперь, используя метод getcwd, мы можем получить путь к текущему рабочему каталогу.

Список папок и файлов

Давайте перечислим папки / файлы в текущем каталоге, используя listdir:

Как видите, у меня есть 2 папки: Data и Population_Data. У меня также есть 3 файла: файл разметки README.md и два файла Python, а именно, tutorial.py и tutorial_v2.py.

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

Вызовите эту функцию, используя текущий путь к рабочей директории, который мы видели как это сделать ранее:

Вывод был усечен для краткости.

Как видно из вывода, имена папок оканчиваются на /, а файлы внутри папок имеют отступ с четырьмя пробелами справа. В папке Data есть один CSV-файл с именем uscitiesv1.4.csv. Этот файл содержит данные о населении для каждого города в Соединенных Штатах. Папка Population_Data содержит папки для состояний, содержащие отдельные csv-файлы для данных о населении для каждого состояния, извлеченные из uscitiesv1.4.csv.

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

Давайте изменим рабочий каталог и войдем в каталог данных с названием «New York».

Теперь давайте снова запустим метод list_files, но в этом каталоге.

Как видите, мы вошли в папку New York в папке Population_Data.

Создать единую и вложенную структуру каталогов

Теперь давайте создадим новый каталог с именем testdir в этом каталоге.

Как видите, он создает новый каталог в текущем рабочем каталоге.

Давайте создадим вложенный каталог с 2 уровнями.

В ответ мы получим:

Мы получаем ошибку. Чтобы быть конкретным, мы получаем FileNotFoundError. Вы можете спросить, почему ошибка FileNotFound, когда мы пытаемся создать каталог.

Причина: модуль Python ищет каталог с именем level1dir для создания каталога level2dir. Так как level1dir не существует, он выдает FileNotFoundError.

Читайте также:  Sven ma 331 цена

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

Проверьте текущее дерево каталогов,

Как мы видим, теперь у нас есть две подкаталоги в папке New York. testdir и level1dir. level1dir имеет каталог под названием level2dir.

Рекурсивно удалить один или несколько каталогов

Модуль os также имеет методы для изменения или удаления каталогов, которые я покажу здесь.

Теперь давайте удалим каталоги, которые мы только что создали, используя rmdir:

Проверьте текущее дерево каталогов, чтобы убедиться, что каталог больше не существует:

Должно получится следующее:

Как видите, testdir был удален.

Давайте попробуем удалить структуру вложенных каталогов level1dir и level2dir.

В результате мы получим:

Как видно, этот код бросает ошибку OSError и это правильно. Он говорит, что каталог level1dir не пуст. Это правильно, потому что под ним есть level2dir.

С помощью метода rmdir невозможно удалить непустой каталог, аналогичный версии командной строки Unix.

Так же, как и метод makedirs(), давайте попробуем rmdirs(), который рекурсивно удаляет каталоги в древовидной структуре.

Давайте снова посмотрим на структуру дерева каталогов:

Это подводит нас к предыдущему состоянию каталога.

Пример с обработкой данных

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

Для этого давайте поднимемся на один уровень выше в структуре каталогов.

С этим, давайте снова рассмотрим структуру дерева каталогов.

В ответ мы получим:

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

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

Заключение

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