如何在没有 os.system() 或错误的情况下获取 Python 中用户的用户名?
How to take the username of the user in Python without os.system() or error?
我正在编写一个程序,其中我给出了一小部分:-
#!/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
JetBrains 在 Linux 上使用 PyCharm。每当我使用用户名时,我都会得到带有用户名的“\n”。我尝试使用
whoami = whoami[:-2]
但是失败了。
您的代码无法正常工作的原因是因为 whoami 是一个字节流,末尾带有 '\n'。
使用 strip()
从 whoami 对象中删除 '\n'。
并通过 utf-8 解码将其转换为字符串。
whoami = whoami.strip().decode("utf-8")
我正在编写一个程序,其中我给出了一小部分:-
#!/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
JetBrains 在 Linux 上使用 PyCharm。每当我使用用户名时,我都会得到带有用户名的“\n”。我尝试使用
whoami = whoami[:-2]
但是失败了。
您的代码无法正常工作的原因是因为 whoami 是一个字节流,末尾带有 '\n'。
使用 strip()
从 whoami 对象中删除 '\n'。
并通过 utf-8 解码将其转换为字符串。
whoami = whoami.strip().decode("utf-8")