Python argparse сохранить аргумент в переменную - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь сохранить аргумент argparse в переменной.

import argparse
parser = argparse.ArgumentParser()
   
parser.add_argument('-n', dest='noww', action='store', help="shows noww")

args = parser.parse_args()

print(noww)

, но он дает эту ошибку.

 python c:/Users/rbhuv/Desktop/code/testing.py  -n sdad
Traceback (most recent call last):
  File "c:/Users/rbhuv/Desktop/code/testing.py", line 8, in <module>
    print(noww)
NameError: name 'noww' is not defined

Ответы [ 4 ]

1 голос
/ 03 августа 2020

Когда вы делаете вызов parse_args, вы получаете обратно объект Namespace:

>>> args = parser.parse_args(['-n', 'sdad'])
>>> args
Namespace(noww='sdad')

Отсюда вы можете получить доступ к значению как к атрибуту:

>>> args.noww
'sdad'
0 голосов
/ 03 августа 2020

Преобразуйте args в словарь, используя vars

import argparse
parser = argparse.ArgumentParser()
   
parser.add_argument('-n', dest='noww', action='store', help="shows noww")

args = parser.parse_args()
args = vars(args)

print(args["noww"])
0 голосов
/ 03 августа 2020

Вам нужно немного переформатировать аргумент.

parser.add_argument('-n', '--now', action='store_true', help="shows noww") args = parser.parse_args()

print(args.now)

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

0 голосов
/ 03 августа 2020

Это должно быть args.noww вместо noww.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...