Python Glossary English

все Python 3osфункция

os.getlogin

os — идентификаторы пользователя/группы

Возвращает имя пользователя, вошедшего в управляющий терминал процесса.

Синтаксис

os.getlogin(...)

Без управляющего терминала — в cron, systemd, контейнере, CI — поднимает OSError. Документация прямо советует getpass.getuser или pwd.getpwuid(os.getuid()).pw_name: первая смотрит переменные окружения LOGNAME и USER, вторая — реальный UID. На Windows возвращает имя вошедшего пользователя.

Примеры

import os
print(os.getlogin())  # → ? имя пользователя управляющего терминала, например alex; без терминала — OSError
user = os.getlogin()  # → ? без терминала (cron, CI) — OSError
print(os.path.join('/home', user))  # → путь к домашнему каталогу по имени входа, например /home/alex
print(os.environ.get('USER') or os.getlogin())  # → то же имя; в cron или в демоне без терминала os.getlogin() бросает OSError, поэтому сначала смотрят переменную окружения
print(os.getlogin() == os.environ.get('LOGNAME'))  # → на Unix обычно True, но getlogin() читает владельца терминала, а LOGNAME — переменную окружения, которую можно подменить

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности