Getting the remaining arguments in argparse

Use parse_known_args():

args, unknownargs = parser.parse_known_args()

Use argparse.REMAINDER:

parser.add_argument('rest', nargs=argparse.REMAINDER)

Example:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-i', action='store', dest='i', default='i.log')
parser.add_argument('-o', action='store', dest='o', default='o.log')
parser.add_argument('rest', nargs=argparse.REMAINDER)
parser.parse_args(['hello', 'world'])
>>> Namespace(i='i.log', o='o.log', rest=['hello', 'world'])