Может ли argparse использоваться для инициализации значений по умолчанию для строк

Я хотел бы инициализировать необходимые переменные для моего скрипта Python (3.4), предоставляя конечному пользователю возможность изменить определения этих переменных с помощью параметров командной строки. Похоже, argparse это путь. Я посмотрел здесь, чтобы начать, и это работало для всех моих вариантов использования, кроме приведенного ниже:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--con',dest='targFileName',default='targets.con')
args = parser.parse_args()
print(targFileName)

В результате возникает ошибка:

bash-4.1$ python test.py
Traceback (most recent call last):
File "test.py", line 7, in <module>
print(targFileName)
NameError: name 'targFileName' is not defined.

Конечно, я неправильно читаю документ. Чего не хватает?

1 ответ

Решение

Ты используешь args = parser.parse_args(), но это не определяет все аргументы в глобальной области видимости. Это просто возвращает экземпляр класса, который имеет атрибуты для ваших аргументов. Чтобы получить этот аргумент, используйте args.targFileName, Вы также можете сказать args = vars(parser.parse_args()) чтобы вы могли использовать args['targFileName'],

Другие вопросы по тегам