【问题标题】:Python command handlingPython 命令处理
【发布时间】:2017-06-27 21:49:26
【问题描述】:

基本上,我创建了一个命令行 python 菜单来娱乐和练习。该脚本有许多有趣的功能和命令,但它的中心是实际的命令行,用于检查输入的字符串是否对应于一个选项并执行它。我使用 if 和 elif 来检查命令,它有它的缺点。

elif cmdprompt == '--help':
    print("\n"
    self.help()

上面的代码将接受用户的输入,如果它是“--help”,那么它将运行该函数。但是,如果用户输入了带有任何空格的字符串,则会将其识别为无效选项。使用“或”似乎效率低下,如果我将它与很多 elif 一起使用,它会破坏我的代码。有什么办法可以让这个命令处理更灵活吗?也许只是检查以确保用户在最后输入带有任意数量空格的“--help”。

【问题讨论】:

  • 也许你应该考虑使用argparse
  • 使用string.trim() 删除字符串开头和结尾的空格。
  • @Polikdir 他正在做一个菜单,而不是处理 CLI 参数。
  • @Polikdir 要让每个函数都需要自己的参数,那就太痛苦了
  • import sys; if sys.argv[1].strip() == '--help': ...

标签: python if-statement input


【解决方案1】:

这将消除空格:

elif cmdprompt.strip() == '--help':

您也可以这样做:

elif '--help' in cmdprompt:

但请注意,这将匹配包含 --help 的任何内容,而不仅仅是额外的空格。

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2015-07-30
    • 2021-11-30
    • 2012-09-05
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多