使用Python解析带有管道/重定向的Linux命令行
有没有现成的工具可以解析Linux命令行,并识别一些基本的管道和重定向符号,比如 '|'
、'<'
和 '>'
?最好是能用来作为子进程调用的参数,而不是使用 os.system
。
shlex.split()
可以进行基本的解析,但它的输出并不总是能被 subprocess.Popen
使用,比如在这个例子中:
sed -f script.sed < infile > outfile
2 个回答
0
Hotwire 看起来可以做到这一点,这个网页上有一些关于它是如何工作的资料。
IPython IPipe 也有一种不同的方法来完成一些和 Hotwire 相似的功能。
-1
这样的模块其实没有什么新东西,因为用Popen并把shell设置为True时,已经能做到这些了。
可以查看这个链接了解更多: http://docs.python.org/library/subprocess.html#using-the-subprocess-module
所以,这个模块是不会存在的。