Что такое модуль ОС Python и как его использовать?

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

Особенности системы ОС Python

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

Этот модуль также содержит два субмодуля: модуль os.sys и модуль os.path. Вы можете использовать функции, предоставляемые модулем ОС, для выполнения широкого круга задач. Некоторое распространенное использование включает выполнение команд оболочки, управление файлами и каталогами, создание процессов и т. Д.

Начало работы с модулем ОС

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

Связанный: Как установить Python на Ubuntu

Запустите интерпретатор, набрав python в терминале или командной оболочке. Как только он откроется, импортируйте модуль ОС, используя следующую инструкцию.

 >>> import os

Теперь вы можете получить доступ к функциям, предоставляемым модулем ОС, включая системную команду Python. Например, вы можете определить системную платформу с помощью команды name . В приведенном ниже примере показано, как вызывать системные команды, предоставляемые модулем ОС.

 >>> os.name

Эта функция проверяет наличие определенных модулей ОС и определяет платформу на основе этого. Используйте функцию uname для получения подробной информации.

 >>> os.uname()

Эта команда отображает точную системную платформу вместе с информацией об архитектуре компьютера, выпуске и версии. Используйте функцию getcwd, чтобы получить текущий рабочий каталог.

 >>> os.getcwd()

Вы можете легко изменить рабочий каталог с помощью системной команды Python chdir . Передайте новое местоположение как строковый параметр.

 >>> os.chdir('/tmp')

Функция mkdir модуля ОС упрощает создание новых каталогов. Это также позволяет нам создавать рекурсивные папки, то есть Python создаст все отсутствующие каталоги, которые являются родительскими для конечного каталога.

 >>> os.mkdir('new-dir')

Используйте команду rmdir для удаления каталогов из вашего рабочего каталога.

 >>> os.rmdir('new-dir')

основы модуля python os

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

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

 >>> cmd = 'date'
>>> os.system(cmd)

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

 >>> cmd = 'nano'
>>> os.system(cmd)

Система ОС Python также выводит код возврата для каждой выполняемой команды. Системы POSIX возвращают 0 при успешном выполнении и ненулевые значения для обозначения проблем.

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

 >>> cmd = 'gcc --version'
>>> os.system(cmd)

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

 >>> os.system('users > test')

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

 >>> os.system('ping -c 3 google.com')

Вы также можете использовать вызовы подпроцесса для выполнения системных команд из Python. Это дает несколько дополнительных преимуществ, включая более быстрое выполнение, лучшую обработку ошибок, синтаксический анализ вывода и конвейерные команды оболочки. Официальная документация Python также рекомендует вызывать подпроцесс для более старых модулей, таких как os.system и os.spawn .

 >>> import subprocess
>>> subprocess.run(["ping","-c 3", "example.com"])

Управление файлами и каталогами через модуль ОС

Мы показали, как создавать простые файлы и каталоги с помощью модуля ОС Python. Что делать, если вы хотите создать вложенные папки? Система ОС также позаботится об этом для нас, программистов. Например, приведенные ниже фрагменты создают папку $ HOME / test / root / api . Он также создаст необходимые родительские каталоги, если они недоступны.

 >>> dirname = os.path.join(os.environ['HOME'], 'test', 'root', 'api')
>>> print(dirname)
>>> os.makedirs(dirname)

Во- первых, мы восстановили домашний каталог с помощью ENVIRON , а затем присоединился к имена папок с помощью os.path.join. Оператор печати отображает имя папки, а makedirs его создает.

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

 >>> os.chdir(os.path.join(os.environ['HOME'], 'test', 'root', 'api'))
>>> os.system('touch file1 file2 file3')
>>> os.listdir(os.environ['HOME'])

Вы можете легко переименовать каталог api с помощью команды переименования, предлагаемой модулем ОС. Приведенный ниже оператор переименовывает этот каталог api в test-api.

 >>> os.rename('api', 'test-api')

Используйте функции isfile и isdir ОС, если вашей программе необходимо проверять определенные файлы или каталоги.

 >>> os.path.isfile('file1')
>>> os.path.isdir('file1')

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

 >>> dir = os.path.join(os.environ['HOME'], 'test', 'root', 'api', 'file1.txt')
>>> dirname, basename = os.path.split(dir)
>>> print(dirname)
>>> print(basename)

Используйте приведенный ниже код для извлечения расширений, таких как .txt или .mp3, из имен файлов.

 >>> filename, extension = os.path.splitext(basename)
>>> print(filename)
>>> print(extension)

Разное использование системы Python OS

Модуль ОС предлагает множество дополнительных функций для управления такими вещами, как пользовательские процессы и планировщик заданий. Например, вы можете быстро получить UID (идентификатор пользователя) текущего процесса с помощью функции getuid .

 >>> os.getuid()
>>> os.getgid()

Функция getgid возвращает идентификатор группы запущенного процесса. Используйте getpid для получения PID (идентификатор процесса) и getppid для получения идентификатора родительского процесса.

 >>> os.getpid()
>>> os.getppid()

Вы также можете использовать модуль ОС для изменения прав доступа к файлам и каталогам из вашей программы Python. Для этого используйте функцию chmod ОС.

 >>> os.chmod('file1.txt', 0o444)

Эта команда изменяет разрешение file1.txt на 0444 . Используйте 0o444 вместо 0444, чтобы убедиться, что оператор совместим с обеими основными версиями Python.

Используйте всю мощь системы Python OS

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