Python 使用 docopt 解析json参数文件过程讲解


Posted in Python onAugust 13, 2019

1. 背景

在深度学习的任务中,通常需要比较复杂的参数以及输入输出配置,比如需要不同的训练data,不同的模型,写入不同的log文件,输出到不同的文件夹以免混淆输出

常用的parser.add()方法非常占用代码空间,而且输入输出配置无法通过文件更改,只能通过命令行参数改变。

docopt 库提供了一个非常优雅的命令行解析工具,这边只介绍其中解析文件参数

2. 安装

pip install docopt
import docopt
import json

3. 使用

docopt 由两部分组成,第一部分是解析部分,通过“”“ -”“”(一段类似注释的双引号表示),这一部分必不可少。

"""
Usage: train <json_file>
"""

上面解析部分的指令很简单,输入应为:

python test.py config.json

第二部分是main 函数:

if __name__ == "__main__":
  args = docopt.docopt(__doc__)
  args = json.load(open(args["<json_file>"]))
  print('==>Params')
  for key in args.keys():
    print('\t{}:{}\n'.format(key,args[key]))
  train(args) 

我将 config.json 设置为:

{
 "dataset":    "human_science",
 "length":     1000,
 "model":     "CNN",
 "log_dir":    "./logs/",
 "output_dir":   "./output/",
 "output_prefix": "human_science_CNN",
 
 "lr":0.01
}

命令行的输出应为:

Python 使用 docopt 解析json参数文件过程讲解

成功将参数传入train()函数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python机器学习之SVM支持向量机
Dec 27 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
python画折线图的程序
Jul 26 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
python异步存储数据详解
Mar 19 Python
pandas计数 value_counts()的使用
Jun 24 Python
python 中xpath爬虫实例详解
Aug 26 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
python实战之90行代码写个猜数字游戏
Apr 22 Python
Django项目中实现使用qq第三方登录功能
Aug 13 #Python
一篇文章搞定Python操作文件与目录
Aug 13 #Python
Python Django Cookie 简单用法解析
Aug 13 #Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 #Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 #Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 #Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 #Python
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
php实现分页显示
2015/11/03 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Python 互换字典的键值对实例
2019/02/12 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
计算机专业自荐信
2013/10/14 职场文书
说明书范文
2014/05/07 职场文书
计算机专业自荐信
2014/05/24 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
学校捐款活动总结
2015/05/09 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书