Библиотека os

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

1. Работа с путями и файлами

  • os.getcwd() Возвращает текущую рабочую директорию.import os current_dir = os.getcwd()
  • os.chdir(path) Изменяет текущую рабочую директорию на указанную.os.chdir("/home/user")
  • os.listdir(path) Возвращает список содержимого указанного каталога.files_and_dirs = os.listdir(".")
  • os.mkdir(path[, mode]) Создает новую директорию с заданным именем и необязательным параметром режима доступа (octal format).os.mkdir("new_folder", 0o755)
  • os.makedirs(name[, mode=0o777], exist_ok=False) Рекурсивно создает вложенные директории, аналогично команде mkdir -p.os.makedirs("parent/subdir/new_subdir", exist_ok=True)
  • os.rmdir(path) Удаляет пустую директорию.os.rmdir("empty_folder")
  • os.remove(path) Удаляет файл.os.remove("old_file.txt")
  • os.rename(src, dst) Переименовывает файл или директорию.os.rename("old_name.txt", "new_name.txt")
  • os.stat(path) Получает статистику файла или директории (размер, метаданные и т.п.).file_stat = os.stat("myfile.txt") print(file_stat.st_size) # размер файла
  • os.walk(top[, topdown=True[, onerror=None]]) Обходит дерево директорий рекурсивно сверху вниз или снизу вверх, возвращая кортежи (current_directory, directories_in_current_dir, files_in_current_dir).for root, dirs, files in os.walk("."): print(root, dirs, files)

2. Управление окружающей средой

  • os.environ Словарь переменных окружения, используемых программой.home_path = os.environ["HOME"]
  • os.getenv(key[, default_value]) Получить значение переменной окружения или вернуть дефолтное значение, если переменная отсутствует.python_path = os.getenv("PYTHONPATH", "")
  • os.putenv(key, value) Установка новой переменной окружения.os.putenv("MY_VAR", "value")
  • os.unsetenv(key) Убирает переменную окружения.os.unsetenv("OLD_VAR")

3. Модификация прав доступа

  • os.chmod(path, mode) Меняет права доступа к файлу или директории.os.chmod("file.txt", 0o644)
  • os.access(path, mode) Проверяет наличие указанных прав доступа (используя маски типа os.R_OK, os.W_OK, os.X_OK).if os.access("file.txt", os.R_OK): print("Файл доступен для чтения!")

4. Исполняемые процессы

  • os.system(command) Выполняет команду оболочки и возвращает код завершения.result_code = os.system("ls -l")
  • os.popen(cmd, mode='r') Открывает канал связи с запущенным процессом командной строки.output = os.popen("echo Hello").read().strip()
  • os.execv(program, args) Замещает текущий процесс новым, указанным командой (аналогично execve в C).os.execv("/bin/bash", ["bash"])
  • os.fork() Создает дочерний процесс (доступно только в UNIX системах).pid = os.fork() if pid > 0: print("Родительский процесс") else: print("Дочерний процесс")

5. Прочие полезные методы

  • os.path.join(*paths) Объединяет части путей в единый путь согласно правилам конкретной платформы.full_path = os.path.join(os.getcwd(), "subdir", "file.txt")
  • os.path.exists(path) Проверяет существование файла или директории.exists = os.path.exists("some_file.txt")
  • os.path.isdir(path) Определяет, является ли путь директором.is_dir = os.path.isdir("/tmp")
  • os.path.isfile(path) Определит, является ли путь файлом.is_file = os.path.isfile("data.json")
  • os.path.splitext(filename) Разделяет имя файла и расширение.filename, ext = os.path.splitext("image.png") # ("image", ".png")
  • os.name Имя используемого API-интерфейса операционной системы (‘posix’ для Linux/macOS, ‘nt’ для Windows).platform_type = os.name

Заключение

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

Источник: https://stepik.org/lesson/1932265/step/1?unit=1958775

Было ли это полезно?

0 / 0