2024-09-26 18:14:10 发布
网友
from sys import argv script, lira_cbt, [eur_hedge] = argv if eur_hedge == None: #Do x else: #Do y
我希望它能以lira_cbt作为一个论点(做x),或者同时以lira_cbt和eur_hedge作为一个论点(做y)。这可以用sys.argv实现吗?
只要使用sys.argv的长度
sys.argv
if len(sys.argv) == 2: # do X else: # do Y
如果这不是一个废弃脚本的一部分,请考虑使用argparsehttp://docs.python.org/library/argparse.html
目前,它将更加复杂,但它将帮助您记录程序接受的选项,并提供有用的错误消息,而不像 用户可能无法理解的“要解包的值太多”。
另一个选项是使用try从argv列表中提取值:
try
lira_cbt = sys.argv[1] try: eur_hedge = sys.argv[2] except IndexError: eur_hedge = None if eur_hedge == None: # Do X else: # Do Y
您还可以查看getopt以获得更灵活的命令行参数解析器。
只要使用
sys.argv
的长度如果这不是一个废弃脚本的一部分,请考虑使用argparsehttp://docs.python.org/library/argparse.html
目前,它将更加复杂,但它将帮助您记录程序接受的选项,并提供有用的错误消息,而不像 用户可能无法理解的“要解包的值太多”。
另一个选项是使用
try
从argv列表中提取值:您还可以查看getopt以获得更灵活的命令行参数解析器。
相关问题 更多 >
编程相关推荐