我有一个 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/