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 相关文章推荐
Windows系统下安装Python的SSH模块教程
Feb 05 Python
Python性能优化技巧
Mar 09 Python
Python中的hypot()方法使用简介
May 18 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
python3 实现的对象与json相互转换操作示例
Aug 17 Python
安装python及pycharm的教程图解
Oct 10 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
python脚本和网页有何区别
Jul 02 Python
Python是怎样处理json模块的
Jul 16 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
详解Python yaml模块
Sep 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的5个安全措施小结
2012/07/17 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
浅谈PHP封装CURL
2019/03/06 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python中树与树的表示知识点总结
2019/09/14 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
详解Python 最短匹配模式
2020/07/29 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
房地产销售大学生自我评价分享
2013/11/11 职场文书
人事专员职责
2014/02/22 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
创业计划书介绍
2019/04/24 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript