更好的命令行解析 python

Nicer command line parse python

我使用 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

有时候,我需要一些选项。为此,它可能看起来像 loke

py_analysis --data path_to_data_file --option_1 True --option_2 True

以我个人的口味,这有点难看。我更喜欢

py_analysis path_to_data_file --option_1 --option_2

我很确定这是可能的。我只是不知道如何

使用store_true操作

parser.add_argument('-e', '--option_1', help='', default=False, action ='store_true')

然后只需添加到命令行 --option_1 会将其值设置为 True.

要使用位置参数而不是选项,请替换:

parser.add_argument('-d', '--data',help='')

作者:

parser.add_argument('data_file', help='')