Может ли 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']
,