Python 如何在终端上显示标志(例如[-h])?
示例屏幕截图:我想要的输出: 我想为脚本用户启用帮助标志,最初认为解决方案是使用argparse:Python 如何在终端上显示标志(例如[-h])?,python,argparse,flags,Python,Argparse,Flags,示例屏幕截图:我想要的输出: 我想为脚本用户启用帮助标志,最初认为解决方案是使用argparse: 由于某种原因,我无法打印到cmd提示符,因为添加-h(就像我示例中的红色圆圈)会返回一个FileNotFound错误。上述代码是否不正确 如果是的话,你能给我提供代码吗? 或者是否有任何有用的来源(我一直在寻找一个明确的例子,但没有结果)尝试添加 parser=argparse.ArgumentParser(add_help=True)我无法重现此内容 so59568543.py import
由于某种原因,我无法打印到cmd提示符,因为添加-h(就像我示例中的红色圆圈)会返回一个FileNotFound错误。上述代码是否不正确 如果是的话,你能给我提供代码吗? 或者是否有任何有用的来源(我一直在寻找一个明确的例子,但没有结果)尝试添加
parser=argparse.ArgumentParser(add_help=True)
我无法重现此内容
so59568543.py
import argparse
parser=argparse.ArgumentParser(description='…等等…)
parser.add_参数('file1',help='…诸如此类…)
add_参数('file2',help='…诸如此类…)
args=parser.parse_args()
打印(args)
Windows 10、Python 3.7.3
欢迎来到StackOverflow。看见在您发布MRE代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。此外,请确保在发布之前,您已经适当地研究了示例。对于堆栈溢出来说,询问源代码是特别离题的。这是否回答了您的问题?下面是一些关于使用
argparse
模块的信息,可能会有所帮助。请参阅上的一节。@Prune是的,我会发布比上面3行更好的MRE代码,但是,在这里这样做会导致大量的代码块-特别是因为(来自@aws\u peedient提供的源代码)我遗漏了一行代码:args=parser.parse_args()
。但是我理解你的担忧。@aws_学徒谢谢你,在我在3行代码后添加了args=parser.parse_args()之后,它现在可以工作了。但你知道为什么会这样吗?似乎我可以用任何名字代替'args'变量;解释器是否在幕后使用了此选项?add_help
默认为true。是的,它太长了,无法复制,特别是因为错误只是省略了“args=parser.parse_args()”,如您在此处所述-谢谢。你知道这额外的一行代码是做什么的吗?解释器是否使用我不知道的变量?parse_args()
实际解析命令行选项和参数。没有它,解析器实际上什么都不做。
parser = argparse.ArgumentParser(description='... blah blah ...')
parser.add_argument('file1', help='... blah blah ...')
parser.add_argument('file2', help='... blah blah ...')
C:\Users\X\Desktop>python so59568543.py
usage: so59568543.py [-h] file1 file2
so59568543.py: error: the following arguments are required: file1, file2
C:\Users\X\Desktop>python so59568543.py -h
usage: so59568543.py [-h] file1 file2
... blah blah ...
positional arguments:
file1 ... blah blah ...
file2 ... blah blah ...
optional arguments:
-h, --help show this help message and exit
C:\Users\X\Desktop>python so59568543.py aaa bbb
Namespace(file1='aaa', file2='bbb')
C:\Users\X\Desktop>