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

 更新时间:2019年08月13日 10:37:10   作者:SiyuanChen   我要评论

这篇文章主要介绍了Python 使用 docopt 解析json参数文件过程讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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
}

命令行的输出应为:

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

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

相关文章

  • OpenCV2.3.1+Python2.7.3+Numpy等的配置解析

    OpenCV2.3.1+Python2.7.3+Numpy等的配置解析

    这篇文章主要介绍了OpenCV2.3.1+Python2.7.3+Numpy等的配置解析,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • flask框架中勾子函数的使用详解

    flask框架中勾子函数的使用详解

    这篇文章主要介绍了flask框架中勾子函数的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • python opencv将图片转为灰度图的方法示例

    python opencv将图片转为灰度图的方法示例

    这篇文章主要介绍了python opencv将图片转为灰度图的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python中利用sorted()函数排序的简单教程

    Python中利用sorted()函数排序的简单教程

    这篇文章主要介绍了Python中利用sorted()函数排序的简单教程,sorted()函数有返回值,在Python的排序实现中发挥着相当重要的作用,需要的朋友可以参考下
    2015-04-04
  • Python实现PS滤镜中马赛克效果示例

    Python实现PS滤镜中马赛克效果示例

    这篇文章主要介绍了Python实现PS滤镜中马赛克效果,涉及Python基于skimage库的图形马赛克效果相关实现技巧,需要的朋友可以参考下
    2018-01-01
  • python列表去重的二种方法

    python列表去重的二种方法

    这篇文章主要介绍了python列表去重的二种方法,第二种方法无法保持原有顺序,需要的朋友可以参考下
    2014-02-02
  • linux下python抓屏实现方法

    linux下python抓屏实现方法

    这篇文章主要介绍了linux下python抓屏实现方法,涉及Python操作屏幕截取的相关技巧,需要的朋友可以参考下
    2015-05-05
  • python写的一个squid访问日志分析的小程序

    python写的一个squid访问日志分析的小程序

    这篇文章主要介绍了python写的一个分析squid访问日志的小程序,本文实现的目标是统计access.log中的ip数目,需要的朋友可以参考下
    2014-09-09
  • 让python同时兼容python2和python3的8个技巧分享

    让python同时兼容python2和python3的8个技巧分享

    这篇文章主要介绍了让python同时兼容python2和python3的8个技巧分享,对代码稍微做些修改就可以很好的同时支持python2和python3的,需要的朋友可以参考下
    2014-07-07
  • Python Grid使用和布局详解

    Python Grid使用和布局详解

    这篇文章主要为大家详细介绍了Python Grid使用和布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06

最新评论