将参数传递给subprocess.Popen参数

时间:2014-08-20 06:54:38

标签: python bash subprocess popen

我是Python新手,需要编写脚本。

我有一个参数result,我需要将它传递给subprocess.Popen

中的参数

尝试这样做

proc = subprocess.Popen(['sed', '-i', '/x/c\y = 'result'', 
                         '/home/test/1.txt'], stdout=subprocess.PIPE) 

但它给出了语法错误。如果我这样:

proc = subprocess.Popen(['sed', '-i', '/x/c\y = ', result, 
                         '/home/test/1.txt'], stdout=subprocess.PIPE)

sed错误地实现了结果,而不是/x/c\y =的结尾,而是像一个单独的值

2 个答案:

答案 0 :(得分:1)

您必须使用+运算符

连接字符串
proc = subprocess.Popen(['sed', '-i', '/x/c\y = 'result'', ...\
                                                ^      ^

proc = subprocess.Popen(['sed', '-i', '/x/c\y = '+result+'', ...\

答案 1 :(得分:1)

proc = subprocess.Popen("sed -i /x/c\y = "+result+" /home/test/1.txt",shell=True,stdout=subprocess.PIPE)

如果从默认位置使用sed,也可以尝试使用shell = True选项。