Python 以列表形式从命令行传递参数并对其进行分析

Python 以列表形式从命令行传递参数并对其进行分析,python,parameter-passing,argparse,Python,Parameter Passing,Argparse,我有以下代码: import arg parser = arg.ArgumentParser(description="<%=@project_name%> Command Line.") parser.add_argument( "--inputs", "-i", help="input files.", default="./", ) parser.add_argument( "--controls", "-c", help="Parms.

我有以下代码:

import arg
parser = arg.ArgumentParser(description="<%=@project_name%> Command Line.")
parser.add_argument(
        "--inputs", "-i", help="input files.", default="./",
    )
parser.add_argument(
        "--controls", "-c", help="Parms.", default=False
    )
parser.add_argument(
        "--outputs", "-o", help="output files.", default="./"
    )
我只是想知道如何将参数列表作为参数传递,并在python中解析它?比如:

python code.py -i ./ -o ./ -c [False, 5, 'aStr']

在命令行中引用参数:

python code.py -i ./ -o ./ -c "[False, 5, 'aStr']"
然后使用
ast.literal\u eval()
解析其值

import ast
...
controls = ast.literal_eval(parser.controls)

import arg
不应该是
import argparse
?您可以传递一个逗号分隔的值列表。例如,“python code.py a b c d,e,f”,然后是
sys.argv[4]。拆分(“,”
查看
sys.argv
,以便了解shell如何拆分这些字符串。你可能需要更多的报价。解析器从
argv
工作。接受
“python code.py-i./-o./-c False 5 aStr”
怎么样。“[”和“,”使解析更加困难。
import ast
...
controls = ast.literal_eval(parser.controls)