如何在python函数中使用可选命令行参数?

问题描述 投票:1回答:2

我想使用命令行参数来提供Python函数的更紧凑和可扩展的方式,这是我所拥有的:

def getRelevant (number = 5, sortBy = "Change"):
    number, sortBy = int(number), sortBy
    relevant = ...
    return relevant

if __name__ == "__main__":
    if len(sys.argv) == 3:
        print(getRelevant(sys.argv[1], sys.argv[2]))
    elif len(sys.argv) == 2:
        print(getRelevant(sys.argv[1]))
    else:
        print(getRelevant())

有效。但是我对此条件不满意,有没有办法使它更简单?

python function sys
2个回答
1
投票

您可以尝试使用argparse或Typer

argparse:https://docs.python.org/3/library/argparse.html

打字机:https://typer.tiangolo.com/


0
投票

Argparse应该这样做。它具有丰富而灵活的功能。对于您的情况,下面的工作即可完成:

import argparse
parser = argparse.ArgumentParser(description='Description of your app here.')
parser.add_argument('-N', '--integers', default=5,  help='your help text here')
parser.add_argument('-S', '--sortby', default='Change', choices=['Change', 'SomeOtherOption'], help='some help text here ')

if __name__ == "__main__":
  args = parser.parse_args()
  print(args.integers) # prints 5 if nothing provided
  print(args.sortby)  # prints 'Change' if nothing provided
© www.soinside.com 2019 - 2024. All rights reserved.