【问题标题】:Recreating a shell-like interpreter within python?在 python 中重新创建一个类似 shell 的解释器?
【发布时间】:2011-09-25 19:32:40
【问题描述】:

在我坐下来开始破解之前,我想我会来这里看看你们是否有任何提示,或者即使以前做过类似的事情。

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

>> 

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

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

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

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

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

【问题讨论】:

    标签: python string parsing shell special-characters


    【解决方案1】:

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

    这只是将事物分成逻辑标记;它不会做任何诸如变量扩展之类的事情。这仍然取决于您,实际运行命令也是如此。

    【讨论】:

    • 哇,好方便。这就是我喜欢蟒蛇的原因!谢谢。
    【解决方案2】:

    你见过标准库中的shlex 吗?看看这个example

    【讨论】:

      猜你喜欢
      • 2013-12-11
      • 2020-03-28
      • 2018-10-02
      • 2011-05-16
      • 2020-09-05
      • 1970-01-01
      • 2011-09-29
      • 2012-05-11
      • 2019-06-29
      相关资源
      最近更新 更多