gpt4 book ai didi

python - 无法从 python 2.7 中的命令行获取真/假值

转载 作者:行者123 更新时间:2023-12-04 17:02:38 24 4
gpt4 key购买 nike

我正在尝试将标志合并到程序中:

python2.7 hello.py --showxy

argparse给我带来麻烦。

这是我的示例测试代码:
import os
import sys
import argparse

print (os.getcwd())
print ("___________________________________________________")
print ("A: " + sys.argv[0])
print ("B: " + sys.argv[1])
print ("C: " + sys.argv[2])
print ("___________________________________________________")


parser = argparse.ArgumentParser()
parser.add_argument('--showxy', action='store_true')
args = argparse.Namespace()
d = vars(args)


print Namespace()

虽然我应该得到:
Namespace(showxy=True)

我实际上收到了一个错误:
A: hello.py
B: haarcascade_frontalface_default.xml
C: euromil.jpg
___________________________________________________
Traceback (most recent call last):
File "hello.py", line 19, in <module>
print Namespace()

NameError: name 'Namespace' is not defined

我应该如何格式化这个?

最佳答案

您缺少解析步骤

args = parser.parse_args()
args = argparse.Namespace()只是创建一个新的空 Namespace目的。
argparse是模块。 parserArgumentParser目的。 Namespace是在该模块中定义的类。 parse_args创建一个 Namespace , 用它从 sys.argv 解析的值填充它,并将其返回为 args .

定义 parser本身不做任何解析。

文档中的第一个示例是:
import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

有人声称这对初学者来说太高级了,但关键部分就在那里。
parser = ...
parser.add_argument...
args = parser.parse_args()
# look at args, print it, access attributes, etc.
argparse.Namespace直到第 https://docs.python.org/3/library/argparse.html#the-namespace-object 节才提到

关于python - 无法从 python 2.7 中的命令行获取真/假值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36804460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com