Модуль os Python

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

Модуль Python OS

Функции, предоставляемые модулем OS, позволяют нам работать с задачами, связанными с операционной системой, независимо от того, является ли она платформой Windows, Macintosh или Linux. В этом уроке мы рассмотрим эти функции и то, что мы можем с ними сделать. Давайте начнем наше путешествие с этими функциями и рассмотрим, какую информацию они предоставляют.

Импортируем модуль os в Python

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

os.name

Эта функция возвращает имя модуля ОС, который он импортирует. Это различается в зависимости от используемой операционной системы. В настоящее время зарегистрированы ‘posix’, ‘os2’, ‘ce’, ‘nt’, ‘riscos’ и ‘java’. Давайте выполним это на системе:

>>> print(os.name)
posix

Очевидно, что это может выдавать различные платформы в зависимости от интерпретатора.

os.environ

environ – это не функция, а параметр процесса, через который мы можем получить доступ к переменным окружения системы. Давайте посмотрим на пример кода:

import os
output = os.environ['HOME']
print(output)

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

os.execvp

execvp – один из способов выполнения других команд в системе. Давайте посмотрим на пример кода для этой функции:

import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) +  tuple(arguments)))

Для этого мы просто создали простой скрипт под названием hello.py со следующим кодом:

print('Hello')

Когда мы запустим этот скрипт, будет следующий вывод:

os.getuid

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

>>> os.getuid()
501

Таким образом, текущий идентификатор оболочки процесса – 501.

os.rename

С помощью функции переименования os в Python мы можем легко переименовать файл.

import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')

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

os.system

Функция os.system в Python позволяет нам запускать команду в сценарии Python, точно так же, как если бы я запускал ее в своей оболочке. Например:

import os
currentFiles = os.system("users > users.txt")

Когда я запускал этот скрипт, в том же каталоге был создан новый файл с именем users.txt и содержимым String ‘shubham’, так как это также возвращается оригинальной оболочкой: Обратите внимание, что это очень мощная команда и ее следует использовать осторожно.

os.error

Класс ошибок модуля Python os является базовым классом для ошибок, связанных с вводом/выводом. Таким образом, мы можем перехватывать ошибки ввода/вывода, используя OSError в блоке except.

import os

try:
    f = open('abc.txt', 'r')  # file is missing
except OSError:
    print('Error')

os.getpid

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

>>> os.getpid()
71622

Таким образом, идентификатор пользователя текущего процесса оболочки – 71622.

os.listdir

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

>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']

Она возвращает перечисляемый список имен каталогов и файлов.

os.uname

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

>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')

Это было довольно подробно, на самом деле.

import os.path против import os

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

  • Когда Python запускается, он загружает множество модулей в sys.module.
  • Модуль os также загружается при запуске Python. Он назначает свой path для атрибута конкретного модуля os.
  • Он внедряет sys.modules['os.path'] = path, чтобы вы могли выполнять import os.path, как если бы это был подмодуль.

Резюме

В этом уроке мы прочитали о различных функциях, предоставляемых модулем OS в Python, и увидели, как они работают. Смотрите больше уроков по Python здесь. Ссылка: Документация по API

Source:
https://www.digitalocean.com/community/tutorials/python-os-module