2016-10-11 15 views
0

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

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

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

ответ

2

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

parser = argparse.ArgumentParser(description='Configure') 
.... 
args = parser.parse_args() 
...... 
options = vars(args) 
+0

Отлично! Если кто-то заинтересован, вот моя реализация с протоколированием: 'logger.info (« Использование: \ n {0} \ n ".format (" ".join ([x для x в sys.argv]))) 'logger.debug (« Все используемые настройки: »)' 'для k, v в отсортированном (vars (args) .items()):' 'logger.debug (" {0}: {1} ". format (K, V)) ' – NWaters