Python os.getlogin () vs BASH: quem

2

Eu criei 3 sessões com contas de usuário e não tive problema com o Unix: who command mas porque não consigo obter resposta correta com a função python: getoslogin ().

Por favor, encontrar imagem em anexo para referência.

    
por rɑːdʒɑ 01.11.2015 / 12:20

1 resposta

3

Em a documentação oficial do módulo os :

os.getlogin():

Return the name of the user logged in on the controlling terminal of the process

Como o usuário raja está logado no tty onde o processo python está sendo executado, você está obtendo corretamente a saída raja .

Para obter o que você deseja, você pode usar o módulo subprocess para executar comandos nativos do Linux em python :

$ who
foobar   :0           2015-11-01 18:04 (:0)
foobar   pts/1        2015-11-01 18:04 (:0)
foobar   pts/9        2015-11-01 18:04 (:0)


>>> python2
>>> import subprocess
>>> print subprocess.check_output("who")
foobar   :0           2015-11-01 18:04 (:0)
foobar   pts/1        2015-11-01 18:04 (:0)
foobar   pts/9        2015-11-01 18:04 (:0)

Ou verifique a função get_users() de psutil package.

    
por heemayl 01.11.2015 / 12:40