使用docopt生成Python脚本参数项

简介

相比较optparse和argparse,docopt更节省程序员的编写脚本参数提示和参数项时间,但更随意和不规范,且代码维护性更差

使用案例:

# coding=utf-8
"""1                          #这儿写标题,-h的时候会被打印出来

Usage:                     #没有出现在Usage中的不规范用法,将会打印Usage段,并sys.exit(1)
  1.py D_IP init_instance [--configSvr] [--replname=<replSetName>] [-P PORT | --port=PORT] [--disk=data{}]
  1.py init_mongos [-P PORT | --port=PORT] [--instance=<IP>:<PORT>]
  1.py -h | --help

Arguments:             #可以直接输入参数,而不用输入参数名。其位置由上面的Usage定义
  D_IP  destination IP

Options:                                                                                  #对上面Usage中出现的参数的说明,
  -P PORT   Self port.                                                              #当一个参数项同时拥有-X --xx两种形式的表达方式的时候
  --disk=DATA_NUMBER    Install in /Data{}.                         #结果字典中返回的参数名为--xx
  --replname=<replSetName> ReplSet`s Name.                   #
                                                              # 传值的参数项有两种表达方式 -X YY --xx=YY 或 -X <yy>, --xx <yy>
                                                              #         前一种参数值提示应全大写,后一种用逗号分隔,提示应该用<>包裹

"""
from docopt import docopt

def concat_parameters(dict_a):
    opt_str = ‘‘
    for i in dict_a.keys():
        # 如果该选项非false(有值,或True),且是--parameters,追加拼接到参数字符串中
        if dict_a[i]  and i[0:2] == ‘--‘:
            print(‘key:‘, i)
            opt_str = opt_str+‘ {}={}‘.format(i,dict_a[i])
    print(opt_str)

if __name__ == ‘__main__‘:
    arguments = docopt(__doc__, version=‘0.1.1rc‘)  #借用了脚本的__doc__属性存放参数说明
        # version选项指定了脚本的版本信息
    # print(arguments)

    if arguments[‘init_instance‘]:
        D_IP = arguments[‘D_IP‘]
        concat_parameters(arguments)

    elif arguments[‘init_mongos‘]:
        pass

使用方式:


python 1.py init_instance --port=3304

参考连接

Github项目:docopt

原文地址:http://blog.51cto.com/l0vesql/2124291

时间: 2024-11-07 14:04:55

使用docopt生成Python脚本参数项的相关文章

jinja2批量生成python脚本

? 在使用airflow的过程中需要大量的dag脚本进行性能测试,如果一个个去编写dag脚本未免太过麻烦,于是想到用python的jinja2模板引擎实现批量脚本生成. 先通过pip命令安装jinja2模块: $ pip install jinja2 然后创建模板文件(模板可以是任何形式的文本格式,没有特定扩展名,甚至可以不要扩展名): dag_template from datetime import timedelta, datetime import pytz from airflow.o

数据生成python脚本

下面是项目结构: --data 存放数据的文件夹 --main.cpp 题目的正确数据 --prodData.py 生成输入输出数据脚本 --test.cpp 测试代码 --testData.py 测试代码是否正确脚本 prodData.py #-*- coding:utf-8 -*- ''' @auther: Starry @file: prodData.py @time: 2018/1/17 15:47 ''' import random import os DATASIZE = 10 ''

分享一个免杀的反弹shell工具(python脚本转换成exe)

有时候网站服务器上有杀毒软件,我们上传的nc.exe.lcx.exe等工具都被杀了,这时候就需要一款免杀的工具来反弹shell. 这篇博客主要是依据国外的一片文章翻译而来,根据国外大佬的教程将Python脚本转换成exe程序即可免杀. 参考链接:https://medium.com/bugbountywriteup/antivirus-evasion-with-python-49185295caf1 第1步:安装Python2.7和Py2exe 一定要安装32位的Python 2.7和32位的P

如何使用CLI命令在输入文件参数上运行Python脚本来生成输出文件

如何使用CLI命令在输入文件参数上运行Python脚本来生成输出文件. 根据我的理解,analysis.py是python脚本,-s和-p是分别包含Sales.csv和Products.csv中的csv数据的变量名. 在analysis.py中,我如何接受存储在-s和-p中的两个CSV,然后创建一个名为SalesReport.csv的输出? 我是否会创建一个名为SalesReport.csv的空白csv文件,然后将分析的数据写入文件? 或者命令行是否会使用存储在sales-report变量中的数

Python学习之Argparse 解析脚本参数详解

Argparse 是 Python 标准库中推荐的命令行解析模块,经常需要解析脚本参数的话这是个方便的工具模块,摆脱万年手动 system.argv .本文和大家分享的就是python中Argparse解析脚本参数相关内容,一起来看看吧,希望对大家学习python有所帮助. 引入 import argparse parser = argparse.ArgumentParser(description='描述说明,可用于 Help 输出说明', add_help=True) parser.pars

PHP带参数传值调用python脚本

PHP主要用在服务器端做网站后台开发,有些功能用PHP来实现有点费劲或者无法实现,现在在学习python,同样是脚本语言,感觉python能做的事情PHP不一定能胜任.但是现在大部分的网站后台也是用PHP写的,虽然python可以作为WEB开发(flask,这个看了一段时间感觉既然网站用PHP开发好了,python可以做PHP做不好的事情,岂不是更好,逐暂缓),现在有在思考一个问题:有没有什么办法可以让PHP与python结合进来,PHP与python各做他们擅长的事情,毕竟工作中快速开发运行见

Python脚本获取参数的方式

在运维过程中,常常需要自己写脚本,而python往往是最佳的选择.那么怎么获取python脚本的命令行参数呢,例如: python demo.py a b c 怎么获取命令行参数,a,b,c 呢?可以通过sys库里面的argv来实现, 例如: $ cat demo.py #-*- coding: UTF-8 -*- import os import sys def demo(): print sys.argv print len(sys.argv) for i in range(len(sys.

Python脚本生成sitemap

项目须要用脚本生成sitemap,中间学习了一下sitemap的格式和lxml库的使用方法.把结果记录一下,方便以后须要直接拿来用. 来自Python脚本生成sitemap 安装lxml 首先须要pip install lxml安装lxml库. 假设你在ubuntu上遇到了下面错误: #include "libxml/xmlversion.h" compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed wi

python注释、脚本参数、字节码

python注释.脚本参数.字节码 --道心 python安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机]-->[属性]-->[高级系统设置]-->[高级]-->[环境变量]-->[在第二个内容框中找到 变量名为Path 的一行,双击] --> [Python安装目录追加到变值值中,用 : 分割] 如:原来的值;C:\python27,切记前面有分号