Какие знаешь способы для печати в stderr
Python
Middle
Без компании
Какие знаешь способы для печати в stderr
Ответы
В Python есть несколько способов вывода в stderr:
- **Модуль `sys`**
Используем `sys.stderr.write()` или `print()` с явным указанием stderr:
```
import sys
sys.stderr.write("Error message\n")
print("Error message", file=sys.stderr)
```
- **Модуль `logging`**
Настроив логгер, можно выводить ошибки в stderr автоматически:
```
import logging
logging.basicConfig(level=logging.ERROR)
logging.error("Error occurred")
```
- **`warnings.warn()`**
Для не критичных, но важных сообщений:
```
import warnings
warnings.warn("Deprecation warning", UserWarning)
```
- **Контекстный менеджер `contextlib.redirect_stderr`** (Python 3.5+)
Временное перенаправление stderr:
```
from contextlib import redirect_stderr
import io
err_buffer = io.StringIO()
with redirect_stderr(err_buffer):
print("Error", file=sys.stderr)
```
Для обычных случаев чаще всего используют `print(..., file=sys.stderr)` из-за простоты. Для сложных проектов предпочтительнее `logging`.