761棋牌_761棋牌app下载_761棋牌游戏中心大厅

761棋牌加入了众多的创新玩法,所以说在选择娱乐天体验的时候你一定要相信761棋牌,一定会给大家提供最好的娱乐享受,因为现在的名气很大。

By

使用 argparse 编写自己的命令行工具

前言

如果你还在用 sys.argv 的方式解析复杂的命令行参数,那儿你就 out 了!快来使用更加强大的 argparse 吧~

argparse 是一个命令行参数解析工具,它包含在 python 自带的标准库中,所以不需要另外安装。

正好这几天写了个异常点检测的工具,我用 argparse 把它封装成了一个命令行工具,下面就以它为例演示下 argparse 的使用。

使用 argparse 编写自己的命令行工具

使用 argparse 主要有以下几步:

1. 导入库

import argparse

2. 创建解析器

parser = argparse.ArgumentParser(description='xxx')

3. 添加命令行参数

parser.add_argument('-i', '--input', dest='input_filename', action='store',
                    default='data.csv', type=str, help='specify the input file, default `data.csv`')

4. 解析参数

args = parser.parse_args()

废话不多说,直接上使用 argparse 的示例代码 ex.py:

#coding=utf8
import argparse

def parse_args():
    '''
    解析命令行参数
    '''
    parser = argparse.ArgumentParser(description='A outliers detect tool.')

    parser.add_argument('-i', '--input', dest='input_filename', action='store',
                        default='data.csv', type=str, help='specify the input file, default `data.csv`')

    parser.add_argument('-o', '--output', dest='output_filename', action='store',
                        default='outliers_result.csv', type=str, help='specify the output file, default `outliers_result.csv`')

    parser.add_argument('-n', '--n_estimators', dest='n_estimators', action='store',
                        default=100, type=int, help='the number of base estimators in the ensemble, default 100')

    parser.add_argument('-p', '--proportion', dest='proportion', action='store',
                        default=0.001, type=float, help='the proportion of outliers in the data set, default 0.001')

    parser.add_argument('-b', '--batch', dest='batch', action='store',
                        default=256, type=int, help='batch size for predicting, default 256')

    parser.add_argument('-v', '--verbose', dest='verbose', action='store',
                        default=0, type=int, help='controls the verbosity of the tree building process, default 0')

    parser.add_argument('-s', '--isSaveModel', dest='issavemodel', action='store_true',
                        default=False, help='whether to save the model after training. False (default) => train and predict, not save model. True => only train, then save the model')

    parser.add_argument('-l', '--isLoadModel', dest='isloadmodel', action='store_true',
                        default=False, help='whether to load the local model for prediction. False (default) => train and predict. True => load local model and predict')

    parser.add_argument('-m', '--model', dest='modelname', action='store',
                        default='IsolationForest.model', type=str, help='specify the saved model name, default `IsolationForest.model`')

    parser.add_argument('--ini', dest='config_filename', action='store',
                        default=None, type=str, help='specify configuration file, default None. Note: .ini file parameters can overwrite command-line parameters with the same name')


    args = parser.parse_args()
    return args

if __name__ == '__main__':
    # 解析命令行参数
    args = parse_args()

以上代码已经封装好了一个命令行工具,我们可以用 -h 查看它的帮助信息。

在命令行中运行效果如下:

D:\workspace>ex.py -h
usage: ex.py [-h] [-i INPUT_FILENAME] [-o OUTPUT_FILENAME] [-n N_ESTIMATORS]
             [-p PROPORTION] [-b BATCH] [-v VERBOSE] [-s] [-l] [-m MODELNAME]
             [--ini CONFIG_FILENAME]

A outliers detect tool.

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT_FILENAME, --input INPUT_FILENAME
                        specify the input file, default `data.csv`
  -o OUTPUT_FILENAME, --output OUTPUT_FILENAME
                        specify the output file, default `outliers_result.csv`
  -n N_ESTIMATORS, --n_estimators N_ESTIMATORS
                        the number of base estimators in the ensemble, default
                        100
  -p PROPORTION, --proportion PROPORTION
                        the proportion of outliers in the data set, default
                        0.001
  -b BATCH, --batch BATCH
                        batch size for predicting, default 256
  -v VERBOSE, --verbose VERBOSE
                        controls the verbosity of the tree building process,
                        default 0
  -s, --isSaveModel     whether to save the model after training. False
                        (default) => train and predict, not save model. True
                        => only train, then save the model
  -l, --isLoadModel     whether to load the local model for prediction. False
                        (default) => train and predict. True => load local
                        model and predict
  -m MODELNAME, --model MODELNAME
                        specify the saved model name, default
                        `IsolationForest.model`
  --ini CONFIG_FILENAME
                        specify configuration file, default None. Note: .ini
                        file parameters can overwrite command-line parameters
                        with the same name

是不是十分酷炫和专业呢!

参考资料

  • argparse — Parser for command-line options, arguments and sub-commands(argparse 官方文档)
    https://docs.python.org/3/library/argparse.html

  • argparse - 命令行选项与参数解析(译)(argparse 中文教程)
    https://www.cnblogs.com/lovemyspring/p/3214598.html

  • python学习之argparse模块
    https://zhuanlan.zhihu.com/p/28871131

原创声明

转载请注明:呓语 » 使用 argparse 编写自己的命令行工具