如何将列表和其他值作为命令行参数传递?

Sie*_*cje 2 python python-2.7

我想将4个参数传递给我的python脚本,其中一个必须是一个列表.即使它只包含1个元素.

参数的顺序无关紧要.

    import sys
    print sys.argv

    one = sys.argv[1]
    two = sys.argv[2]
    three = sys.argv[3]
    four = sys.argv[4]

    print "one: " + one
    print "two: " + two
    print "three: "+ three
    print "four: " + four
Run Code Online (Sandbox Code Playgroud)

这就是我的称呼方式.

    python myScript.py name file setting ['listItem1']
Run Code Online (Sandbox Code Playgroud)

第四项是具有一个元素的列表.但是当我打印它时,我看到了

    four: [listItem1]
Run Code Online (Sandbox Code Playgroud)

我想看看

    four: ['listItem1']
Run Code Online (Sandbox Code Playgroud)

wim*_*wim 6

也许更好的方法是调用你的脚本

python myScript.py name file setting listItem1 ...
Run Code Online (Sandbox Code Playgroud)

然后使用切片:

four = sys.argv[4:]
Run Code Online (Sandbox Code Playgroud)

这使得python语法不受shell限制,这很难看,并且可能会在以后使用shell中的特殊字符引起更多麻烦.

更好的方法是使用argparse模块实现适当的CLI .