【发布时间】:2014-08-24 22:46:02
【问题描述】:
我可以在 Python 中使用subprocess-handled 查询来确定终端的宽度,如下所示:
int(subprocess.Popen(['tput', 'cols'], stdout = subprocess.PIPE).communicate()[0].strip('\n'))
如何以类似的方式确定 Bash 用户名?那么,如何使用子进程在 Python 中查看 ${USER} 的值?
【问题讨论】:
-
为什么要使用
subprocess? python进程本身可以访问环境。 -
您可以为此使用
os.environ。例如print(os.environ['USER']) -
非常感谢您的建议。部分动机是想了解如何在
subprocess方法中使用 Bash 变量。我不知道该怎么做。访问环境变量 ${USER} 就是一个简单的例子。 -
问题是,使用 bash 风格的变量名调用 Python 子进程不会做任何变量扩展、通配等操作。Python 子进程之间没有 shell,而你的程序的 argv/argc正在调用。
-
无关:在 Python 3.3+ 中有
shutil.get_terminal_size()function,用于获取终端的宽度/高度。
标签: python bash variables subprocess