Если вы готовы изменить свой подход, я бы порекомендовал не пытаться заново изобретать колесо, а проверить некоторые из существующих библиотек python для реализации этой функциональности.
Существует библиотека с именем argparse , которая хорошо разбирает аргументы командной строки и возвращает соответствующие сообщения об ошибках, возможно, вы найдете ее полезной.
import argparse
p = argparse.ArgumentParser(description='My Program', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
p.add_argument("-f", type=str, help="-f file", required=True)
p.add_argument("-n", type=str, help="-n file", required=True)
p.add_argument("-o", type=str, help="-o file", default=None)
args = p.parse_args() # will throw error if required -f and -n args not passed
С точки зрения регистрации ошибок, вы можете попробовать использовать библиотеку python logging . Эту библиотеку можно настроить для записи информации в стандартный вывод, текстовые файлы и т. Д., И, вероятно, она достаточно гибкая для ваших требований.