如何在python函数中使用可选的命令行参数?
我想要一种更紧凑、更可扩展的方式来使用命令行args来为python函数提供数据,以下是我所拥有的:如何在python函数中使用可选的命令行参数?,python,function,sys,Python,Function,Sys,我想要一种更紧凑、更可扩展的方式来使用命令行args来为python函数提供数据,以下是我所拥有的: def getRelevant (number = 5, sortBy = "Change"): number, sortBy = int(number), sortBy relevant = ... return relevant if __name__ == "__main__": if len(sys.argv) == 3: print(g
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())
它起作用了。但是我对这个条件不满意,有没有办法让它更简单?您可以尝试使用argparse或Typer argparse:
typer:您可以尝试使用argparse或typer 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
我们应该这样做。它功能丰富、灵活。
就您的情况而言,以下内容起到了作用:
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
argparse
当然是您想要学习的命令行选项和参数工具-它是所有开发人员都应该知道的工具的一部分(使用日志记录和pdb
)
话虽如此,对于这种情况,您也可以非常简单地解决问题,而无需argparse
:
if __name__ == "__main__":
args = sys.argv[1:]
print(getRelevant(*args))
argparse
当然是您想要学习的命令行选项和参数工具-它是所有开发人员都应该知道的工具的一部分(使用日志记录和pdb
)
话虽如此,对于这种情况,您也可以非常简单地解决问题,而无需argparse
:
if __name__ == "__main__":
args = sys.argv[1:]
print(getRelevant(*args))
可以使用*args使函数接受多个参数。无论何时需要在函数中设置默认值,都可以使用*args使函数接受多个参数。您需要如何在函数中设置默认值。。