2011-12-26 53 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模塊。

相關問題