在解析命令行参数时尝试使用帮助和详细信息

Posted

技术标签:

【中文标题】在解析命令行参数时尝试使用帮助和详细信息【英文标题】:Trying using Help and Verbose while parsing command line arguments 【发布时间】:2019-02-13 13:35:43 【问题描述】:
import argparse

parser = argparse.ArgumentParser(description='Demo')
parser.add_argument('--verbose',
    action='store_true',
    help='verbose flag' )

args = parser.parse_args()

if args.verbose:
   print("~ Verbose!")
else:
   print("~ Not so verbose")

我收到了这个错误

用法:ipykernel_launcher.py [-h] [--verbose] ipykernel_launcher.py:错误:无法识别的参数:-f C:\Users\Sourav\AppData\Roaming\jupyter\runtime\kernel-c07f728a-968e-40af-b09e-e7d9b67b47fe.json

系统退出:2

C:\Users\Sourav\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\IPython\core\interactiveshell.py:2855:用户警告:要退出:使用“退出”、“退出” ',或 Ctrl-D。 warn("要退出:使用 'exit'、'quit' 或 Ctrl-D。", stacklevel=1)

【问题讨论】:

你想如何运行这个脚本?看起来像 Jupyter 笔记本?在任何情况下,解析器看到的sys.argv 列表都包含这个“-f”参数,它不准备处理。 @hpaulj 那我应该改变什么? 我不知道你想做什么!要测试/学习argparse,请勿使用notebook。从 shell 将其作为普通脚本运行。如果你想在笔记本中设置一些值,不要使用argparse 我也试过用shell,但做不到。 其实我只是在学习如何使用 argparse 模块。任何帮助都会对我有用。 【参考方案1】:

在 shell 窗口中(linux bash):

1317:~/mypy$ python stack52235399.py 
~ Not so verbose
0940:~/mypy$ python stack52235399.py --verbose
~ Verbose!
0940:~/mypy$ cat stack52235399.py 
import argparse

parser = argparse.ArgumentParser(description='Demo')
parser.add_argument('--verbose',
    action='store_true',
    help='verbose flag' )

args = parser.parse_args()

if args.verbose:
   print("~ Verbose!")
else:
   print("~ Not so verbose")

【讨论】:

为什么我不能在 windows shell 中做呢?

以上是关于在解析命令行参数时尝试使用帮助和详细信息的主要内容,如果未能解决你的问题,请参考以下文章

python开发简单的命令行工具

Python3中使用argparse模块解析命令行参数

Python3中使用argparse模块解析命令行参数

Python 中命令行参数解析工具 docopt 安装和应用

Argparse 命令行解析模块常用参数

Python3-argparse模块-解析命令行参数