import argparse parser = argparse.ArgumentParser() parser.add_argument('-k', '--known', action='store_true') args, unknown = parser.parse_known_args('-u -k'.split()) assert args.known assert len(unknown) == 1 args, unknown = parser.parse_known_args('-u unknown -k'.split()) assert args.known assert len(unknown) == 2 # Good so far, but the asserts below fail args, unknown = parser.parse_known_args('-uk'.split()) assert args.known assert len(unknown) == 1 args, unknown = parser.parse_known_args('-ku'.split()) assert args.known assert len(unknown) == 1