Jeśli uruchomiony argparse wewnątrz innego skrypt Pythona, jak podczas testowania go wewnątrz unittest, a następnie drukowanie sys.argv będzie drukować tylko argumenty głównego skryptu, np:
[ 'C: \ eclipse \ plugins \ org.python.pydev_5.9.2.201708151115 \ pysrc \ runfiles.py', „C: \ eclipse_workspace \ test_file_sear ch.py”, '--port', '58454', '--verbosity', '0']
W tym przypadku należy użyć vars iteracyjne nad argparse args:
parser = argparse.ArgumentParser(...
...
args = parser.parse_args()
for arg in vars(args):
print arg, getattr(args, arg)
Dzięki: https://stackoverflow.com/a/27181165/658497