python - python Argparse 中的额外字符?

标签 python argparse

我有一个 argparse 函数:

def argParse():
# Possible Arguments
parser = argparse.ArgumentParser()

parser.add_argument("-s", "--search", dest="s", help="Seach parameters")
parser.add_argument("-d", "--directory", dest="d", help="Choose Directory to save data")
args = parser.parse_args()

params = str(args.s)
directory = str(args.d)
if params == "None":
    print("Search parameters are null, exiting program.")
    parser.print_help()
    exit(1)
if directory == "None":
    print("directory is null, storing to current working directory.")

但是,它在使用输出中添加了额外的 Capitol S 和 D 吗?关于如何清理它有什么想法吗?

usage: scan.py [-h] [-s S] [-d D]

optional arguments:
  -h, --help           show this help message and exit
  -s S, --search S     Seach parameters
  -d D, --directory D  Choose Directory to save data

最佳答案

我认为您正在寻找 metavar kwarg。

试试这个:

import argparse

def parse_args():
    parser = argparse.ArgumentParser()

    parser.add_argument('-s', '--search', dest='s', metavar='\b', help='Search parameters')
    args = parser.parse_args()

parse_args()

\b 是退格字符,因此它也会删除两者之间的空格, 与使用 "" 相反,我相信它仍然会在初始变量名称后留下一个空格。

output of python argparse_test.py -h:

usage: argparse_test.py [-h] [-s]

optional arguments:
  -h, --help        show this help message and exit
  -s, --search  Search parameters

关于python - python Argparse 中的额外字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46922061/

相关文章:

python - LSTM 反向传播梯度检查的问题

python - 如何使用 python 将值列表插入到 mysql 数据库中?

python - Argparse 子解析器 : hide metavar in command listing

python - 在 python 脚本中摸索命令行参数

python - 使用 argparse 请求 0 或 2 个位置参数?

Python 和 Google Places API |想要获取特定位置的所有 Restaurants

python - 如何在 sqlalchemy ORM 中进行批量更新

python - 通过避免 NaN 滚动系列

python - 每个位置参数的可选参数

Python:在字典中存储设置与 argparse.Namespace