Использование одной и той же опции более одного раза из командной строки в python

Как использовать параметр более одного раза?

например, команда cpdoc :

 cpdoc -d text -sx -sy -sz 

Я хотел бы иметь 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() 

вместо этого используйте модуль argparse

Украденный без стыда из документов :

 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")) 

Вы можете использовать действие append :

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

Но, как говорит vfxectropy, с Python 2.7 модуль optparse устарел в пользу модуля argparse.