关于pycharm:如何在没有os.system()或错误的情况下在Python中获取用户的用户名?

How to take the username of the user in Python without os.system() or error?

本问题已经有最佳答案,请猛点这里访问。

我正在编写一个程序,其中我只提供了一小部分:

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python
import os
import subprocess

whoami = subprocess.check_output("whoami", shell=True)
print whoami
os.chdir("/")
os.chdir("/home/"+whoami+"/Silly")
pwd = subprocess.check_output("pwd", shell=True)
print pwd

执行程序后,我得到了:

1
2
3
4
5
6
7
8
9
10
11
/usr/bin/python2.7 /home/rocky/PycharmProjects/Silly/Tester2.py
rocky
Traceback (most recent call last):

File"/home/rocky/PycharmProjects/Silly/Tester2.py", line 8, in
<module>
os.chdir("/home/"+whoami+"/Silly")
OSError: [Errno 2] No such file or directory: '/home/rocky
/Silly'


Process finished with exit code 1

在Linux上使用JetBrains的pycharm。当我使用用户名时,我会得到带有用户名的""。我试着用

1
whoami = whoami[:-2]

但是失败了。


您的代码不工作的原因是因为whoami是一个末尾带有''的字节流。

使用strip()从whoami对象中删除''。

并通过用UTF-8解码将其转换为字符串。

1
whoami = whoami.strip().decode("utf-8")