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

cem*_*ate 2 python string shell parsing special-characters

在我坐下来开始讨价还价之前,我以为我会来这里看看你们是否有任何提示,或者即使之前已经完成了这样的事情.

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

>> 
Run Code Online (Sandbox Code Playgroud)

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

opt.parse_args(input.split(" "))
Run Code Online (Sandbox Code Playgroud)

工作得很好,但现在我不仅想要使用'\'字符来转义特殊字符,例如空格,还要将引用的字符串视为单个参数,就像在unix shell中一样.

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

谢谢你的任何建议! - 追逐

lar*_*sks 15

shlex模块开始:

$ pydoc shlex
Help on module shlex:

NAME
    shlex - A lexical analyzer class for simple shell-like syntaxes.
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它:

>> import shlex
>> shlex.split('This "is a" test.')
['This', 'is a', 'test']
Run Code Online (Sandbox Code Playgroud)

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