【发布时间】:2017-12-22 03:18:41
【问题描述】:
我正在编写一个程序,除其他外,它允许用户通过参数指定要加载的模块(然后用于执行操作)。我正在尝试设置一种方法来轻松地将参数传递给这个内部模块,并且我试图使用 ArgParse 的 action='append' 让它构建一个我将传递的参数列表。
这是我正在使用的参数的基本布局
parser.add_argument('-M', '--module',
help="Module to run on changed files - should be in format MODULE:CLASS\n\
Specified class must have function with the signature run(src, dest)\
and return 0 upon success",
required=True)
parser.add_argument('-A', '--module_args',
help="Arg to be passed through to the specified module",
action='append',
default=[])
但是 - 如果我然后尝试使用 python my_program -M module:class -A "-f filename" 运行这个程序(我想通过 -f filename 到我的模块)它似乎正在解析 -f 作为它自己的参数(我得到错误my_program: error: argument -A/--module_args: expected one argument
有什么想法吗?
【问题讨论】:
-
查看
sys.argv。引号是通过解析器还是被外壳吞噬?