gpt4 book ai didi

python - argparse.print_help() 不打印完整消息

转载 作者:行者123 更新时间:2023-12-01 07:12:26 30 4
gpt4 key购买 nike

我有一个程序,我尝试使用 argparse 在我的代码中添加帮助:

import argparse,sys

parser = argparse.ArgumentParser(description='prog desc')
parser.add_argument('path', help='name of directory')
args = parser.parse_args()
parser.print_help()

打印:

>python testArgs.py
usage: testArgs.py [-h] path
testArgs.py: error: too few arguments

但我期望与输入 -h 相同:

>python testArgs.py -h
usage: testArgs.py [-h] path

prog desc

positional arguments:
path name of directory

optional arguments:
-h, --help show this help message and exit

但是如果我在 parse_args() 之前切换 print_help() 的位置,那么它就可以正常工作:

import argparse,sys

parser = argparse.ArgumentParser(description='prog desc')
parser.add_argument('path', help='name of directory')
parser.print_help()
args = parser.parse_args()

输出:

>python testArgs.py
usage: testArgs.py [-h] path

prog desc

positional arguments:
path name of directory

optional arguments:
-h, --help show this help message and exit
usage: testArgs.py [-h] path
testArgs.py: error: too few arguments

我做错了什么?

最佳答案

在第一个示例中,您的程序未到达 parser.print_help() 方法,它在 parser.parse_args() 上失败,打印默认错误消息 (这是testArgs.py:错误:参数太少)并退出程序。

在第二个示例中,当您在函数之间切换时,它的行为仍然相同,但您会看到帮助详细信息,因为您在程序失败之前调用了 print_help() 函数(您可以看到它失败,因为它仍然在最后打印错误消息)。

如果您想在发生 argparse 错误时打印帮助消息,请阅读这篇文章: Display help message with python argparse when script is called without any arguments

关于python - argparse.print_help() 不打印完整消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141554/

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