Модуль os в Python. Примеры использования.

Модуль os в Python. Примеры использования.

Руководство по основным методам модуля os в Python. Подробно рассмотрим примеры использования популярных методов.

Введение

Os — это встроенная библиотека языка программирования, предоставляющая интерфейс для взаимодействия с базовой операционной системой, под управлением которой работает Python.

Этот модуль представляет собой портативный способ использования функциональности, зависящей от операционной системы.

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

Модуль os предоставляет массу методов, которые вы используете в различных ситуациях при взаимодействии с операционной системой, начиная от создания новых файлов и папок и заканчивая их переименованием и удалением.

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

Вы можете посмотреть список всех доступных методов в модуле os используя следующий код

import os
dir(os)

['abc',  'access',  'chdir',  'chmod', 'chown',  'close',  'confstr', 'cpu_count',  'curdir', 'defpath',  'devnull', 'dup2', 'environ',  'error', 'execle', 'execlp',  'execv',  'execvp',  'extsep', 'fchmod', 'fchown', 'fdopen', 'forkpty', 'fpathconf', 'fsdecode', 'fsencode', 'fstat',  'fsync', 'ftruncate', 'get_blocking', 'get_exec_path', 'get_inheritable',  'getcwd',  'getenv', 'geteuid', 'getgid', 'getgrouplist', 'getgroups', 'getloadavg',   'getpgrp', 'getpid', 'getppid', 'getsid', 'getuid', 'initgroups', 'kill', 'killpg', 'lchflags', 'lchmod', 'lchown', 'linesep', 'link',  'lockf', 'lstat',  'makedirs',  'mkdir', 'mkfifo',  'name',  'open', 'openpty', 'path', 'pathconf',  'pathsep', 'pipe', 'popen', 'posix_spawn', 'posix_spawnp', 'pread', 'putenv', 'read', 'readlink', 'readv',  'remove', 'removedirs', 'rename', 'renames', 'replace', 'rmdir', 'sched_get_priority_max', 'sched_get_priority_min',  'sendfile', 'set_blocking' ]

Листинг команды очень большой и мне пришлось сократить часть вывода.

Так же вы можете обратиться к официальной документации по использованию модуля os в Python.

В этой статье мы рассмотрим некоторые основные методы библиотеки os на конкретных примерах.

Использование метода os.getcwd()

Этот метод ОС используется для получения пути текущей рабочей директории.

import os
os.getcwd()

'/Users/krnlnx'

Использование метода os.chdir()

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

import os 
os.getcwd()

'/Users/krnlnx'

os.chdir('Desktop') 
os.getcwd()

'/Users/krnlnx/Desktop'

Использование метода os.listdir()

Этот метод возвращает все файлы и каталоги в текущем каталоге.

import os 
os.listdir()

['testdir', 'testfile.py', 'testimage.png']

Также можно передать параметр конкретной директории для просмотра ее файлов и каталогов.

import os 
os.listdir('/tmp/')

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'powerlog', 'com.apple.launchd.791fHUaFBR']

Использование метода os.mkdir()

Этот метод используется для создания новой директории в текущей папке, например, давайте создадим директорию под названием Products.

import os 
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'powerlog', 'com.apple.launchd.791fHUaFBR']

os.mkdir('Products')
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'Products', 'powerlog', 'com.apple.launchd.791fHUaFBR']

Использование метода os.rename()

Модуль используется для переименования файла или папки, ему передается два аргумента, старое и новое имя файла или папки. Например, переименуем папку Products в Stuff.

import os
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'Products', 'powerlog', 'com.apple.launchd.791fHUaFBR']

os.rename('Products', 'Stuff') 
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'Stuff', 'powerlog', 'com.apple.launchd.791fHUaFBR']

Использование метода os.rmdir()

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

Например, удалим каталог Stuff с помощью rmdir().

import os
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'Stuff', 'powerlog', 'com.apple.launchd.791fHUaFBR']

os.rmdir('Stuff')
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973',  'powerlog', 'com.apple.launchd.791fHUaFBR']

Использование метода os.remove()

Этот метод используется для удаления файлов. Например, удалим файл powerlog.

import os
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973', 'powerlog', 'com.apple.launchd.791fHUaFBR']

os.remove('powerlog')
os.listdir()

['fseventsd-uuid', 'MozillaUpdateLock-2656FF1E876E9973',  'com.apple.launchd.791fHUaFBR']

Использование метода os.system()

Этот метод используется для выполнения команды оболочки внутри Python приложения, как если бы вы были в оболочке. Например, давайте выполним команду «ls -1» с помощью системного метода.

import os 
os.system('ls -1')

Вывод программы выглядит следующим образом

MozillaUpdateLock-2656FF1E876E9973
com.apple.launchd.791fHUaFBR
fseventsd-uuid

0

Цифра 0 в конце вывода означает что выполнение программы прошло без ошибок.

Использование метода os.uname()

Этот метод возвращает информацию, идентифицирующую текущую операционную систему.

import os

os.uname()

posix.uname_result(sysname='Darwin', nodename='macbook.local', release='20.3.0', version='Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64', machine='x86_64')

Использование метода os.environ

Environ не является методом в модуле ОС, а является параметром процесса, через который мы можем получить доступ к переменным окружения системы.

Например, давайте получим доступ к переменной окружения HOME

import os

os.environ['HOME']

'/Users/krnlnx'

Мы также можем установить собственную переменную окружения, как показано в примере ниже.

import os

os.environ['test_key'] = "Test var"
os.environ['test_key']

'Test var'

Использование метода os.getuid()

Этот модуль возвращает идентификатор пользователя текущего процесса.

import os

os.getuid()

501

Использование метода os.getpid()

Возвращает реальный идентификатор процесса текущего приложения.

import os

os.getpid()

4365

Заключение

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

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

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

Егор Егоров

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

Ссылка на мой github есть в шапке. Залетай.

Оцените автора
Егоров Егор
Добавить комментарий

  1. Ivan Shulekin

    Егор, привет и спасибо за ресурс!

    Учусь/пишу домашки в PyCharm, всё последних версий, и прога, и интерпретатор — программа при написании os.get.. предлагает getuid, выбираю его из выпавшего списка, при выполнении пишет что в модуле os такой команды нет.. команды которую он сам предложил))

    Getuname в свою очередь даже нет в списках и при написании вручную выдаёт ту же ошибку что такого в os не существует.

    Ответить
  2. Dari

    Круть!Спасибо за подробно расписанную статью. Столько разных методов узнала, буду использовать в работе и изучать дальше

    Ответить
    1. Егор Егоров автор

      угу, когда писал сам немножко нового узнал, век живи — век учись)

      Ответить