我试图在Argparse中创建一个必需标志“-f”,该标志接受输入“filename.pdb”。这很简单。标准解决方案是添加选项“required=True”。
不幸的是,即使这样做,“-f”标志仍然出现在帮助列表的可选参数下。更让人困惑的是,“-f”标志在帮助列表中的“用法”提示中出现为必需。
以下是我的代码:
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file_name", required=True, help="enter name of .pdb file")
parser.add_argument("-bw", "--bin_width", default=.25, help="enter desired bin width in nanometers. default = .25")
parser.add_argument("-bn","--base_name", default="IDP", help="custom prefix for output file naming. default = IDP")
args = parser.parse_args()
这是通过 --help 返回的帮助窗口
usage: rgcalc.py [-h] -f FILE_NAME [-bw BIN_WIDTH] [-bn BASE_NAME]
optional arguments:
-h, --help show this help message and exit
-f FILE_NAME, --file_name FILE_NAME
enter name of .pdb file
-bw BIN_WIDTH, --bin_width BIN_WIDTH
enter desired bin width in nanometers. default = .25
-bn BASE_NAME, --base_name BASE_NAME
custom prefix for output file naming. default = IDP
如您在“用法”块中所看到的,选项“-f”已经被移除方括号,表明它是必需的。尽管如此,“-f”仍然出现在“可选参数”部分。
请问:
A)是否可以自定义格式化帮助窗口以解决此问题?
或者
B)添加一些代码使标记“-f”,“--file_name”作为位置参数(而不是可选参数),但仍需要标记?
我读到Argparse故意这样做是为了避免位置标记,但我应该这样做以迎合传统的Linux用户。
感谢您的帮助!