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是一个末尾带有''的字节流。
使用
并通过用UTF-8解码将其转换为字符串。
1 | whoami = whoami.strip().decode("utf-8") |