Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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中获取用户的用户名而不出现os.system()或错误?_Python_Pycharm_Os.system - Fatal编程技术网

如何在Python中获取用户的用户名而不出现os.system()或错误?

如何在Python中获取用户的用户名而不出现os.system()或错误?,python,pycharm,os.system,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/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

但失败了

代码无法工作的原因是whoami是一个字节流,末尾有“\n”

使用
strip()
从whoami对象中删除“\n”

并通过utf-8解码将其转换为字符串

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

请记住,您可以使用
~
立即访问Linux系统上的主目录。谢谢@Wintro,但我知道,但是用户必须决定哪个用户的主目录。无论如何,谢谢!谢谢你@Vikash!这个答案对我很有帮助。不客气。另一个获取用户名的好方法是在重复问题标记的链接中。当然!“我只看一眼。”KarthikSrivijay如果答案有帮助,请在勾选框上打勾或投赞成票。谢谢:)当然可以@Vikash!我现在就做。
whoami = whoami.strip().decode("utf-8")