Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python argparse将参数保存到变量中_Python - Fatal编程技术网

Python argparse将参数保存到变量中

Python argparse将参数保存到变量中,python,Python,我正在尝试将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

我正在尝试将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

它应该是args.noww而不是noww。

您需要重新格式化您的参数

parser.add_-argument'-n','-now',action='store_-true',help=shows now args=parser.parse_args

打印参数

使用可选参数时,请使用-定义将在整个过程中使用的变量名,然后可以这样调用它。

进行parse_args调用时,您将返回一个名称空间对象:

从这里,您可以作为属性访问该值:

>>> args.noww
'sdad'
使用vars将args转换为字典


你现在定义在哪里?它不在发布的代码中。你是说printargs吗?如果省略args=varsargs,那么只需使用args.noww访问-n标志值。没有必要将其转换为字典。@MichaelGeary甚至我也这么认为,并使用PrintArgs.noww运行脚本,但我得到了错误AttributeError:“dict”对象没有属性“noww”,但您是否删除了vars调用并使用了args.noww而不是args[noww]?听起来您仍在尝试将args作为字典访问。在这里如果单击Run按钮,您将看到第一个parse_args调用没有参数时打印None,第二个parse_args调用有参数时打印howdy。
>>> args.noww
'sdad'
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"])