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