在python的命令行中多次使用同一选项

在python的命令行中多次使用同一选项,python,command-line,Python,Command Line,如何多次使用该选项 例如,命令cpdoc: cpdoc -d text -s x -s y -s z 我希望x、y、z在一个数组/数据结构中 import optparse import os import shutil def main(): p = optparse.OptionParser() folder = [] p.add_option('--source', '-s',help="source folder") p.add_option('--

如何多次使用该选项

例如,命令
cpdoc

cpdoc -d text -s x -s y -s z
我希望x、y、z在一个数组/数据结构中

import optparse
import os
import shutil


def main():
    p = optparse.OptionParser()
    folder = []
    p.add_option('--source', '-s',help="source folder")
    p.add_option('--destination', '-d')
    options, arguments = p.parse_args()

    if options.source and options.destination:
        if not os.path.exists(options.destination):
            os.makedirs(options.destination)
        for source in options.source:
            #do some stuff in each source

    else:
        p.print_help()


if __name__ == '__main__':
    main()

您可以使用
append
操作:

p.add_option('--source', '-s', action='append', help='source_folder')

但是,是的,正如vfxectropy所说,从Python 2.7开始,optparse模块被弃用,取而代之的是argparse模块。

使用argparse模块

无耻地从地下室偷来:

如果在命令行上看到-t3,optparse将执行以下等效操作:

options.tracks = []
options.tracks.append(int("3"))
如果稍后看到,-tracks=4,则会:

options.tracks.append(int("4"))
options.tracks.append(int("4"))