Модуль 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