2011-12-26 55 views
2

如何多次使用该选项?从python的命令行中多次使用相同的选项

例如命令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() 

回答

3

使用argparse模块代替

被盗没有羞耻从docs

parser.add_option("-t", "--tracks", action="append", type="int") 

如果-t3上看到命令行,optparse确实相当于:

options.tracks = [] 
options.tracks.append(int("3")) 

如果稍后上,--tracks = 4所看到的,它的作用:

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

可以使用append动作:

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

但是,是的,正如vfxectropy说,像Python 2.7的optparse模块d不赞成使用argparse模块。

相关问题