все 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Сообщить о неточности