Esiste un modo portatile per ottenere il nome utente dell'utente corrente in Python (ovvero, uno che funziona almeno su Linux e Windows). Funzionerebbe come os.getuid
:
>>> os.getuid()
42
>>> os.getusername()
'slartibartfast'
Ho cercato su Google e sono rimasto sorpreso di non trovare una risposta definitiva (anche se forse stavo solo cercando male su Google). Il modulo pwd fornisce un modo relativamente semplice per ottenere ciò sotto, diciamo, Linux, ma non è presente su Windows. Alcuni dei risultati della ricerca hanno suggerito che ottenere il nome utente in Windows può essere complicato in determinate circostanze (ad esempio, in esecuzione come un servizio Windows), anche se non l'ho verificato.
import pwd, os; print pwd.getpwuid(os.getuid()).pw_gecos
oppureimport pwd, os; print pwd.getpwuid(os.getuid()).pw_name