Подтвердить что ты не робот

Whoami в питона

Каков наилучший способ узнать, что пользователь работает под управлением python?

Я мог бы сделать это:

name = os.popen('whoami').read() 

Но это должно начать совершенно новый процесс.

os.environ["USER"]

работает иногда, но иногда эта переменная среды не установлена.

4b9b3361

Ответ 1

import getpass
print getpass.getuser()

См. документацию модуля getpass.

getpass.getuser()

Верните "имя пользователя" пользователя. Доступность: Unix, Windows.

Эта функция проверяет переменные среды LOGNAME, USER, LNAME и USERNAME, в порядке и возвращает значение первого который установлен на непустую строку. Если ни один не установлен, имя входа из база данных паролей возвращается системы, поддерживающие модуль pwd, в противном случае возникает исключение.

Ответ 2

Это должно работать под Unix.

import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info