复杂的子流程调用失败:

时间:2019-01-17 10:38:44

标签: python bash subprocess command-line-interface

这是我要通过python脚本执行的命令:

echo -e 'setns x=http://maven.apache.org/POM/4.0.0\ncat /x:project/x:groupId/text()' | xmllint --shell pom.xml | grep -v /

它从pom.xml文件中返回groupId

我想编写一个小的CLI来帮助我完成日常任务: 但是我如何参数化(正确的单词:D?)这个命令被接受 通过子过程?

def test():
   process = subprocess.Popen("echo -e 'setns x=http://maven.apache.org/POM/4.0.0\ncat /x:project/x:groupId/text()' | xmllint --shell pom.xml | grep -v /", shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
   out = process.communicate()
   print out

这是我得到的错误

  

('``未知命令-e \ nXPath错误:未定义的名称空间前缀\ nxmlXPathEval:评估失败\ n / x:project / x:groupId / text():没有这样的节点\ n',无)

0 个答案:

没有答案