我试图调用一些使用环境的shell程序,而我试图找出正确的方法。我归结为这个片段:
import subprocess as sp
p = sp.Popen(["echo","Hello","$FOO"], env = {"FOO":"42"}, stdout = sp.PIPE, shell = True)
p.wait()
print(p.communicate())
当" shell"设置为True它打印"(' \ n',无)"当它被设置为False时,它会打印"(' Hello $ FOO \ n',None)",但我希望它能打印出类似于& #34;('你好43 \ n',无)"。我做错了什么,有没有更好的方法呢?
答案 0 :(得分:3)
试试这个:
p = sp.Popen("echo Hello $FOO", env={"FOO":"42"}, shell=True)
输出应为" Hello 42"