在python中重新创建类似shell的解释器?

时间:2011-09-25 19:32:41

标签: python string parsing shell special-characters

在我坐下来开始黑客攻击之前,我想我会来这里看看你们是否有任何提示,或者即使之前已经完成了这样的事情。

我想在python程序中重新创建类似语法的基本shell。换句话说,当人们使用python运行文件时,他们会收到一些提示

>> 

对于简单的事情,使用选项解析器来说

opt.parse_args(input.split(" "))

工作正常,但现在我不仅要使用带有'\'字符的空格来转义特殊字符,还要将引用的字符串视为单个参数,就像在unix shell中一样。

是否有任何可能对此有帮助的内容?

感谢您的任何建议! - 追逐

2 个答案:

答案 0 :(得分:15)

shlex模块开始:

$ pydoc shlex
Help on module shlex:

NAME
    shlex - A lexical analyzer class for simple shell-like syntaxes.

你可以像这样使用它:

>> import shlex
>> shlex.split('This "is a" test.')
['This', 'is a', 'test']

这只是将事物分解为逻辑令牌;它不会做任何像变量扩展等等。这仍然取决于你,就像实际运行命令一样。

答案 1 :(得分:4)

您是否从标准库中看到了shlex?看看这个example