python Argparse中的额外字符?

时间:2017-10-25 00:32:33

标签: 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.")

但是,它正在为使用量输出添加额外的国会大厦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

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找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是退格符,因此它也删除了两者之间的空格, 而不是使用我相信的""仍然会在初始变量名后面留一个空格。

  

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