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 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
python Django里CSRF 对应策略详解
Aug 05 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python print不能立即打印的解决方式
Feb 19 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
python按照list中字典的某key去重的示例代码
Oct 13 Python
Python-split()函数实例用法讲解
Dec 18 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/10/09 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
php自动载入类用法实例分析
2016/06/24 PHP
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
Python单例模式的两种实现方法
2017/08/14 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
Python3+Appium安装使用教程
2019/07/05 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Python如何输出整数
2020/06/07 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
物流业务员岗位职责
2014/02/08 职场文书
生物学专业求职信
2014/07/23 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS