【问题标题】:How to check if any sys.argv argument equals a specific string in Python如何检查任何 sys.argv 参数是否等于 Python 中的特定字符串
【发布时间】:2015-06-07 01:10:14
【问题描述】:

在 Python 中,我想检查已传递给我的脚本的 any 参数是否等于“-h”(以便我可以显示帮助横幅并退出)。

我应该循环遍历 sys.argv 值还是有更简单的方法来实现这一点?

【问题讨论】:

  • Should I loop through sys.argv values - 是的。它不仅适用于argv,如果它是一个序列,您必须循环才能找到它,无论是内部还是显式。
  • sys.argv 只是一个列表。您必须在某个时候循环遍历该序列,是的。
  • 如果您使用argparse,它将为您提供帮助。

标签: python-2.7 argv


【解决方案1】:

只需检查列表中是否存在所需的字符串:

import sys

if "__main__" == __name__:
    if "-h" in sys.argv:
        print "This is a help text."

【讨论】:

    【解决方案2】:
    import sys
    
    def help_required():
        return "-h" in sys.argv[1:]
    

    【讨论】:

      【解决方案3】:

      如果您的目标是在参数中搜索-h,那么您可以遍历sys.argv 列表并查看是否找到该值。

      然而,您实际上试图解决的问题似乎是为您的命令行参数创建一个解析器。如果是这种情况,我认为最好的方法是使用argparse module,它旨在解决这个问题并避免重新发明轮子。默认情况下,argparse 添加了一个带有-h--help 的帮助选项。 (但是,如果需要,可以更改默认行为,请参阅处理该问题的文档部分:https://docs.python.org/3/library/argparse.html#add-help

      【讨论】:

        【解决方案4】:

        你可以用 lebeef 和 dlask 提到的来实现。我更喜欢使用 fileinput,它更复杂。可以导入文件输入

        import fileinput
        if "-h" in fileinput.input():
           display_help_text()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-19
          • 1970-01-01
          • 2017-10-21
          • 2016-12-21
          • 2022-01-04
          • 2021-12-11
          • 1970-01-01
          • 2011-06-05
          相关资源
          最近更新 更多