Python: распечатать ВСЕ аргументы argparse, включая значения по умолчанию

Я хочу регистрировать использование программы python, которая использует модуль argparse. В настоящее время регистратор записывает использование командной строки аналогично ответу, данному в этот пост. Однако это дает только аргументы командной строки и не включает значения по умолчанию, установленные позже в argparse (в конце концов, это предполагаемое использование). Есть ли простой способ распечатать ВСЕ параметры argparse, чтобы создать красивую, аккуратную запись журнала usage, включающую значения по умолчанию?

Нетрудно войти в пространство имен argparse, чтобы получить каждый аргумент по имени, но я надеюсь, что у кого-то есть краткий способ извлечения необходимой информации.

Любое направление приветствуется!


person NWaters    schedule 11.10.2016    source источник


Ответы (1)


Я сделал что-то подобное в приложении, надеюсь, приведенные ниже фрагменты дадут вам то, что вам нужно. Именно обращение к vars дало мне словарь всех аргументов.

parser = argparse.ArgumentParser(description='Configure')
....
args = parser.parse_args()
......
options = vars(args)
person scotty3785    schedule 11.10.2016
comment
Здорово! Если кому интересно, вот моя реализация с логированием: logger.info("Usage:\n{0}\n".format(" ".join([x for x in sys.argv]))) logger.debug("All settings used:") for k,v in sorted(vars(args).items()): logger.debug("{0}: {1}".format(k,v)) - person NWaters; 12.10.2016