我正在编写一个程序,其中包括让用户通过参数指定要加载(并用于执行操作的)模块。我试图设置一种简单的方式来将这些参数传递到内部模块,并尝试使用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
。引号是否能通过解析器,还是被shell所吞噬了? - hpaulj