Что такое модуль ОС Python и как его использовать?
Модуль ОС в Python обеспечивает доступ к системным функциям для работы с файловой системой, процессами, планировщиком и т. Д. Вам необходимо освоить систему ОС Python для написания приложений, которые имеют дело с реальными проблемами. В этом руководстве обсуждаются некоторые основные концепции и показано, как использовать системную команду Python.
Особенности системы ОС Python
Система ОС служит переносимым способом взаимодействия с базовой операционной системой. Он предлагает доступ к именам файлов, аргументам командной строки, переменным среды, параметрам процесса и иерархии файловой системы наряду с другими функциями.
Этот модуль также содержит два субмодуля: модуль os.sys и модуль os.path. Вы можете использовать функции, предоставляемые модулем ОС, для выполнения широкого круга задач. Некоторое распространенное использование включает выполнение команд оболочки, управление файлами и каталогами, создание процессов и т. Д.
Начало работы с модулем ОС
Самый простой способ изучить модуль ОС – через интерпретатор. Вы можете импортировать модуль туда и использовать системные функции без написания исходного кода. Однако для этого у вас должен быть установлен Python. Так что продолжайте и установите Python на свой локальный компьютер.
Запустите интерпретатор, набрав 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
Системная команда, предоставляемая модулем ОС, позволяет программистам выполнять команды оболочки. Обязательно укажите имя команды в виде строки. Как только вы вызываете системную команду 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 предоставляет все необходимое для взаимодействия с базовой операционной системой. Для написания действительно кроссплатформенных программ необходимо четкое понимание системы ОС. Мы рассмотрели некоторые из основных функций, предоставляемых этим модулем, чтобы помочь вам начать работу. Попробуйте их в удобном для вас темпе и не забудьте повозиться с ними.