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 相关文章推荐
Python3中的2to3转换工具使用示例
Jun 12 Python
Python中的zipfile模块使用详解
Jun 25 Python
Python模拟用户登录验证
Sep 11 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
pandas计数 value_counts()的使用
Jun 24 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
python读取yaml文件后修改写入本地实例
Apr 27 Python
python实现语音常用度量方法的代码详解
May 25 Python
浅谈Python数学建模之整数规划
Jun 23 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
生成静态页面的PHP类
2006/11/25 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
express启用https使用小记
2019/05/21 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
python运行其他程序的实现方法
2017/07/14 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
Python代码需要缩进吗
2020/07/01 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
一道Delphi面试题
2016/10/28 面试题
自我评价200字分享
2013/12/17 职场文书
表扬稿格式范文
2015/01/16 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
2015入党自传书范文
2015/06/26 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript