我是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 =
的结尾,而是像一个单独的值
答案 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选项。