使用argparse,我创建了一个小脚本,其中包含我的分析程序的命令行解析器,它是自制python包的一部分。它运作得很好,但我真的不喜欢如何控制它。
这是代码在脚本本身中的外观
def myAnalysis():
parser = argparse.ArgumentParser(description='''
lala''')
parser.add_argument('-d', '--data',help='')
parser.add_argument('-e', '--option_1', help='', default=False, required=False)
parser.add_argument('-f', '--option_2', help='', default=False, required=False)
# combine parsed arguments
args = parser.parse_args()code here
除此之外,分析包
的设置文件还有更多内容entry_points={
'console_scripts': [
'py_analysis = edit.__main__:myAnalysis'
]
正如我所说,这没有任何问题。要分析我必须使用的一些数据
py_analysis --data path_to_data_file
有时,我需要一些选项。为此,它可能看起来很糟糕
py_analysis --data path_to_data_file --option_1 True --option_2 True
就我个人而言,这有点难看。我更喜欢像
这样的东西py_analysis path_to_data_file --option_1 --option_2
我很确定这是可能的。我只是不知道如何
答案 0 :(得分:5)
使用 store_true 操作
parser.add_argument('-e', '--option_1', help='', default=False, action ='store_true')
然后只需添加到命令行 - option_1 就会将其值设置为 True 。
答案 1 :(得分:1)
要使用位置参数而不是选项,请替换:
parser.add_argument('-d', '--data',help='')
由:
parser.add_argument('data_file', help='')