我正在编写一个用于运行 bash 命令的实用程序,该实用程序本质上将字符串和列表可选参数作为输入,并使用可选参数来插入字符串。
我希望它像这样工作:
interpolate.py Hello {user_arg} my name is {computer_arg} %% --user_arg=john --computer_arg=hal
The %%
是一个分隔符,它将要插入的字符串与参数分开。接下来是用于插入字符串的参数。在这种情况下,用户选择了user_arg
and computer_arg
作为参数。程序无法提前知道用户将选择哪个参数名称。
我的问题是如何解析参数?我可以简单地拆分分隔符上的输入参数,但我无法弄清楚如何让 optparse 仅将可选参数列表作为字典给出,而不提前指定它们。有谁知道如何在不编写大量正则表达式的情况下做到这一点?
好吧,如果您使用 '--' 来分隔选项和参数而不是 %%,optparse/argparse 只会将参数作为普通列表提供(将它们视为位置参数而不是切换参数)。之后它不是“很多”正则表达式,它只是一个简单的分割:
for argument in args:
if not argument.startswith("--"):
# decide what to do in this case...
continue
arg_name, arg_value = argument.split("=", 1)
arg_name = arg_name[2:]
# use the argument any way you like
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)