Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python getlogin()不使用';无法获得正确的帐户名_Python_Windows_Cmd - Fatal编程技术网

Python getlogin()不使用';无法获得正确的帐户名

Python getlogin()不使用';无法获得正确的帐户名,python,windows,cmd,Python,Windows,Cmd,我的windows的真实帐户名是“Administrator.SC-201712271504”,但os.getlogin()只获得“Administrator”,我无法将文件导出到桌面。错误类似于没有这样的文件或目录:“C:/Users/Administrator/Desktop/…” 如何获取完整的帐户名“Administrator.SC-201712271504” 或 使用getpass模块如何使用import getpass然后使用getpass.getuser()您的用户名很可能是“管理

我的windows的真实帐户名是“Administrator.SC-201712271504”,但os.getlogin()只获得“Administrator”,我无法将文件导出到桌面。错误类似于没有这样的文件或目录:“C:/Users/Administrator/Desktop/…”

如何获取完整的帐户名“Administrator.SC-201712271504”


使用
getpass
模块如何使用
import getpass
然后使用
getpass.getuser()
您的用户名很可能是“管理员”,并且可能是在升级现有安装时创建了新的配置文件目录。概要文件目录应该准确地反映在
USERPROFILE
环境变量中,即
os.environ['USERPROFILE']
。也就是说,假设“桌面”目录的默认位置是错误的。这是一个可重新定位的用户目录。正确的程序是通过接口通过COM或在较低级别通过COM询问外壳。请参阅。os.getlogin()和getpass.getuser()之间有什么区别?
os.getlogin()
返回在进程的控制终端上登录的用户的名称,而
getpass.getuser()
检查
USERNAME
变量以确定用户是谁。。。我用后者是因为你说前者没有形成。
getpass.getuser
有效吗?现在无法测试,因为我必须将程序转换为.exe并在同事的计算机上运行。谢谢。@AMal,
os.getlogin
与Windows中的“控制终端”无关。它调用,从与当前线程(如果模拟)或进程的令牌关联的登录会话中获取用户名。此登录会话可能与桌面会话(即终端服务会话;与Unix“控制终端”最接近的模拟)的登录会话相同,也可能不同。@Amal,
USERNAME
环境变量通常与
GetUserNameW
返回的名称相同,具体取决于上下文。但是在它检查
用户名
之前,
getpass.getuser
检查
LOGNAME
USER
LNAME
,这是根本错误的。这些变量在Windows中没有任何意义,因此程序或用户会话可以自由使用这些变量,而这些变量与
USERNAME
完全无关。
import getpass
print(getpass.getuser())
import pwd
pwd.getpwuid(os.getuid())[0]