Лого

Модуль os

Начнем...

Что за осы у нас тут и с чем их едят сегодня будем разбираться. Модуль os в Python - это мощный инструмент для взаимодействия с операционной системой. Название расшифровывается как operation system и он позволяет выполнять различные системные операции.

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

Основные функции из модуля

Вот список одних из полезных функций, которые пригодятся в работе:

os.getcwd()

Возвращает текущую рабочую директорию.

    
        import os
        print(os.getcwd())  # Выведет что-то вроде: /home/user/test
    

os.chdir(path)

Сменит текущую директорию на указанную.

    
        os.chdir('/home/user/documents')
    

os.mkdir(path) и os.makedirs(path)

Первая создает одну директорию, вторая вместе со всеми промежуточными может создавать, если они отсутствуют.

    
        os.mkdir('folder')  # Создает папку folder
        os.makedirs('folder/subfolder')  # Создает folder и внутри subfolder
    

os.remove(path) и os.rmdir(path)

Удаляем файл - удаляем пустую директорию.

    
        os.remove('file.txt')  # Удаляет файл
        os.rmdir('folder')  # Удаляет пустую папку
    

os.rename(src, dst)

Переименовывает файл или директорию.

    
    	os.rename('old_name.txt', 'new_name.txt')
    

os.listdir(path)

Выводит список файлов и каталогов в текущей директории

    
        print(os.listdir('.'))
    

os.path.exists(path)

Проверяет существование файла или папки

    
        if os.path.exists('file.txt'):
            print('Файл существует!')
    

os.walk(path)

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

  • текущая директория
  • список поддиректорий
  • список файлов
    
        for root, dirs, files in os.walk('.'):
            print(f'Директория: {root}')
            print(f'Папки: {dirs}')
            print(f'Файлы: {files}')
    

Работа с переменными окружения

Модуль позволяет работать с переменными окружения через функцию os.environ. Это будет словарь, в котором все переменные окружения, которые можно читать и изменять.

    
        print(os.environ['HOME'])  # Выведет домашнюю директорию пользователя
        os.environ['NEW'] = '123'  # Добавляет новую переменную окружения
    

Проверка прав доступа

Функция os.access(path, mode) позволит проверять права доступа к файлу или папке.

    
        if os.access('file.txt', os.R_OK):
            print('Файл доступен для чтения!')
    

Работа с процессами

Модуль os также предоставляет функции для работы с процессами:

  • os.getpid() - возвращает идентификатор текущего процесса
  • os.system(command) - выполняет системную команду
    
        print(os.getpid())  # Выведет ID текущего процесса
        os.system('ls -l')  # Выполнит команду ls -l в терминале
    

Кроссплатформенность

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

    
        path = os.path.join('folder', 'subfolder', 'file.txt')
        print(path)  # На Windows: folder\subfolder\file.txt, на Linux: folder/subfolder/file.txt
    

Заключение

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