首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中不使用os.system()或错误获取用户的用户名?

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

Stack Overflow用户
提问于 2017-07-22 11:50:28
回答 1查看 625关注 0票数 0

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

代码语言:javascript
复制
#!/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

在执行程序之后,我得到了以下信息:-

代码语言:javascript
复制
/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上通过PyCharm使用JetBrains。当我使用用户名时,我会得到用户名的"\n“。我试着用

代码语言:javascript
复制
whoami = whoami[:-2]

但失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-22 11:54:42

您的代码不能工作的原因是,whoami是一个字节流,末尾有一个'\n‘。

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

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

代码语言:javascript
复制
whoami = whoami.strip().decode("utf-8")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45254219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档