在Popen

时间:2018-04-06 11:13:16

标签: python python-2.7 subprocess environment-variables

我有一个环境变量,让我们说PATH,我想用Popen方法回显。我的第一次尝试是使用os.environ如下:

from  subprocess import Popen, PIPE
import os

x = Popen(['echo', os.environ["PATH"]], stdout=PIPE)
result = x.communicate()[0]
print result

并且输出符合预期:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

不幸的是,我的要求是将环境变量的名称传递给Popen,如下面的代码段所示:

x = Popen(['echo', "$PATH", stdout=PIPE)

这是我在stdout中获得的而不是变量内容:

$PATH

我也尝试在Popen中设置env参数,但无济于事:

x = Popen(['echo', "$PATH", stdout=PIPE, env=os.environ)

有没有办法用$ sign和变量名调用Popen方法,所以它仍然可以用作子进程中的变量?

0 个答案:

没有答案