import argparse import sys def main(argv=None): if argv is None: argv = sys.argv[1:] parser = argparse.ArgumentParser() parser.add_argument('foo', # nargs='*', when present, works as intended action='extend') args = parser.parse_args(argv) print(args) if __name__ == "__main__": main(['test_string']) # prints Namespace(foo=['t', 'e', 's', 't', '_', 's', 't', 'r', 'i', 'n', 'g'])