首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >argparser.print_help()未打印完整消息

argparser.print_help()未打印完整消息
EN

Stack Overflow用户
提问于 2019-09-28 05:33:10
回答 1查看 496关注 0票数 1

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

代码语言:javascript
运行
复制
import argparse,sys

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

这将打印:

代码语言:javascript
运行
复制
>python testArgs.py
usage: testArgs.py [-h] path
testArgs.py: error: too few arguments

但我期望的结果与进入-h时一样:

代码语言:javascript
运行
复制
>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

但是如果我把print_help()的位置换到parse_args()之前,它就能正常工作:

代码语言:javascript
运行
复制
import argparse,sys

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

输出:

代码语言:javascript
运行
复制
>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

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-09-28 06:46:27

在您的第一个示例中,您的程序没有到达parser.print_help()方法,它在parser.parse_args()上失败,打印默认的错误消息(即testArgs.py: error: too few arguments),然后退出程序。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58141554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档