Получение аргументов командной строки в виде кортежей в python

Вот пример того, как я хотел бы назвать свой сценарий:

python script.py -f file1.txt "string1" "string2" -f file2.txt "string3" "string4"

Каждый файл, который идет, поскольку вход будет иметь 2 строки, связанные с этим файлом. Может быть любое количество файлов.

Для упрощения я пытаюсь получить такую ​​печать:

('file1.txt', 'string1', 'string2')
('file2.txt', 'string3', 'string4')

Вот что у меня есть на данный момент:

import sys, os, traceback, optparse
import time
import re
#from pexpect import run, spawn

def main ():
    global options, args

    print options.filename

    #for filename in options.filename:
    #  print filename
      #f = file(filename,'r')
      #for line in f:
      #  print line,
      #f.close()



if __name__ == '__main__':
    try:
        start_time = time.time()
        parser = optparse.OptionParser(formatter=optparse.TitledHelpFormatter(), usage=globals()['__doc__'], version='$Id$')
        parser.add_option ('-f', '--file', dest='filename', help='write report to FILE', metavar='FILE', nargs=3)
        parser.add_option ('-v', '--verbose', action='store_true', default=False, help='verbose output')
        (options, args) = parser.parse_args()
        #if len(args) < 1:
        #    parser.error ('missing argument')
        if options.verbose: print time.asctime()
        main()
        if options.verbose: print time.asctime()
        if options.verbose: print 'TOTAL TIME IN MINUTES:',
        if options.verbose: print (time.time() - start_time) / 60.0
        sys.exit(0)
    except KeyboardInterrupt, e: # Ctrl-C
        raise e
    except SystemExit, e: # sys.exit()
        raise e
    except Exception, e:
        print 'ERROR, UNEXPECTED EXCEPTION'
        print str(e)
        traceback.print_exc()
        os._exit(1)

С помощью приведенного выше сценария я получаю только второй файл и связанные строки:

('file2.txt', 'string3', 'string4')
5
задан jezrael 19 July 2015 в 11:58
поделиться