2011-09-25 79 views
2

在我坐下来开始黑客攻击之前,我想我会来这里看看你们是否有任何提示,或者即使之前已经做过类似的事情。在Python中重新创建一个类似shell的解释器?

我想在python程序中重新创建一个基本的shell语法。换句话说,当人们运行使用python的文件,他们将被一点点提示

>> 

对于简单的东西映入眼帘,使用选项解析器说

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

工作得很好,但现在我想不仅要像'\'字符那样使用空格这样的特殊字符,而且还要将带引号的字符串视为单个参数,就像在unix shell中一样。

是否存在任何可能对此有帮助的东西?

感谢您的任何建议! - Chase

回答

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'] 

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

+0

哇,这很方便。这就是为什么我爱蟒蛇!谢谢。 – cemulate

相关问题