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

时间:2017-07-22 11:50:29

标签: python pycharm os.system

我正在编写一个程序,我只给出了一小部分: -

#!/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

执行程序后,我得到了: -

/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\n/Silly'

Process finished with exit code 1

在Linux上使用JetBrains的PyCharm。当我拿到用户名时,我会得到&#34; \ n&#34;用户名。我尝试使用

whoami = whoami[:-2]

但失败了。

1 个答案:

答案 0 :(得分:0)

你的代码无效的原因是因为whoami是一个带有&#39; \ n&#39;的字节流。最后。

使用strip()删除&#39; \ n&#39;来自whoami对象。

通过在utf-8中解码将其转换为字符串。

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