# Os и его методы

### **1. Что такое `os`**

* `os` — встроенный модуль Python для работы с **операционной системой**.
* Позволяет управлять файлами, директориями, процессами, получать системную информацию.
* Кроссплатформенный (работает и на Windows, и на Linux/Mac).

```python
import os
```

***

### **2. Основные возможности и методы**

#### **2.1 Работа с файлами и директориями**

```python
os.getcwd()           # Текущая рабочая директория
os.chdir('/path')     # Смена директории
os.listdir('.')       # Список файлов и папок
os.mkdir('new_dir')   # Создание папки
os.makedirs('a/b/c')  # Создание вложенных папок
os.remove('file.txt')  # Удаление файла
os.rmdir('new_dir')    # Удаление пустой директории
os.removedirs('a/b/c') # Удаление вложенных директорий
```

***

#### **2.2 Работа с путями**

```python
os.path.join('folder', 'file.txt')     # Корректное объединение пути
os.path.exists('file.txt')             # Проверка существования
os.path.isfile('file.txt')             # Проверка файла
os.path.isdir('folder')                # Проверка директории
os.path.basename('/a/b/file.txt')      # Получение имени файла
os.path.dirname('/a/b/file.txt')       # Получение пути до папки
os.path.abspath('file.txt')            # Абсолютный путь
```

***

#### **2.3 Информация о системе**

```python
os.name        # 'posix', 'nt' и т.д.
os.environ     # Словарь переменных окружения
os.cpu_count() # Количество CPU
os.getlogin()  # Имя текущего пользователя
```

***

#### **2.4 Запуск команд ОС**

```python
os.system('echo Hello World')  # Выполнить команду в терминале
```

***

#### **2.5 Переменные окружения**

```python
os.environ['MY_VAR'] = 'value'  # Установить
print(os.environ.get('PATH'))   # Получить
```

***

### **3. Применение в автоматизации тестирования**

* Навигация по файловой структуре проекта.
* Создание временных папок и файлов для тестов.
* Чтение конфигов через `os.environ`.
* Проверка существования артефактов (логов, скриншотов).
* Кроссплатформенные скрипты для CI/CD.

```python
# Создание папки для скриншотов теста
screenshots_dir = os.path.join(os.getcwd(), 'screenshots')
os.makedirs(screenshots_dir, exist_ok=True)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-python/os-i-ego-metody.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
