如何将raw_input提供给子进程

时间:2015-04-13 07:37:55

标签: python-2.7

我正在尝试将shell脚本转换为python。

Shell命令:

BR_EX=br-ex
ovs-vsctl add-br $BR_EX.

在python中:

BR_EX = raw_input()   #User will input br-ex
b = subprocess.Popen("ovs-vsctl add-br $BR_EX", shell=True, stdin=None, stderr=None, executable="/bin/bash")  

我想实现这样的目标。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

使用字符串格式化例程:

b = subprocess.Popen("ovs-vsctl add-br '{}'".format(BR_EX), ...)

或:

b = subprocess.Popen("ovs-vsctl add-br '%s'" % (BR_EX, ), ...)

你可能不会调用子shell,而不是更容易:

b = subprocess.Popen(['/path/to/ovs-vsctl', 'add-br', BR_EX], 
                     stdin=None, stderr=None)