python fire库的使用
一. 介绍
fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象
二. 安装
pip install fire
三. 用法
实例1 单个函数:python 模块名 参数1 参数2
在Common目录下新建一个test_fire.py的模块
import fire def add(a, b): count = a + b return count if __name__ == '__main__': fire.Fire(add)
当不接参数时,执行python test_fire.py会显示帮助信息
帮助信息里显示了fire.Fire()的参数类型(function)、文件路径、文档字符串、参数用法等信息
加参数运行的结果如下:
注意:两种方法调用,一种是直接跟实参,一种是--形参 实参的形式,为了方便,本文采取第一种
实例2 多个函数:python 模块名 函数名 参数
import fire def add(a, b): count = a + b return count def sub(a, b): result = a - b return result if __name__ == '__main__': fire.Fire()
加上参数运行结果:
实例3 类(对象) 多个函数:python 模块名 函数名 参数
import fire class Calculator(object): def add(self, a, b): count = a + b return count def sub(self, a, b): result = a - b return result if __name__ == '__main__': fire.Fire(Calculator) #这里用类名Calculator或者类的实例化对象Calculator()结果都是一样的
加参数运行结果:
注意:
1. fire 默认使用 -
作为参数分隔符,所以如果你要在命令行传入类似 2017-04-22
的参数时,那么程序接收到的参数就肯定不是 2017-04-22
了,需要使用 --separator
来改变分隔符
2. fire
会自动区分你在命令行传入的参数的类型,例如 20170422
会自动识别成 int
,hello
会自动识别成 str
,'(1,2)'
会自动识别成 tuple
,'{"name": "Alan Lee"}'
会自动识别成 dict
。但是你如果想要传入一个字符串类型的 20170422
怎么办?那就需要这样写:'"20170422"'
或者 "'20170422'"
或者 \"20170422\"
,总之呢,就是加一个转义,因为命令行默认会吃掉你的引号
参考文章
https://blog.csdn.net/u010099080/article/details/70332074
https://mp.weixin.qq.com/s/lMOieL_RFRHsh5OW4G4axg
python fire库的使用的更多相关文章
- Python fire库使用
1.前要fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具 不需要做任何额外的工作,只需要从主模块中调用fire.Fire() 它会自动将你 ...
- python+paramiko库+svn写的自动化部署脚本
第一篇博文 直接开门见山的说了. 这是件什么事?:每次部署都是复制本地的文件粘贴到服务器端,因为路径复杂,所以费时且手工容易出漏洞. 一直在想有什么办法可以解决这种,因为以前在微软的一个牛人同事做过一 ...
- 安装Python算法库
安装Python算法库 主要包括用NumPy和SciPy来处理数据,用Matplotlib来实现数据可视化.为了适应处理大规模数据的需求,python在此基础上开发了Scikit-Learn机器学习算 ...
- Python标准库14 数据库 (sqlite3)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...
- 常用python机器学习库总结
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- [Python] 机器学习库资料汇总
声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...
- python常用库
本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...
- python标准库00 学习准备
Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...
- Python标准库:内置函数hasattr(object, name)
Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...
随机推荐
- SOE不能进入断点调试
一.前言 任何程序开发,如果不能进入断点调试,是非常的痛苦的. 如果有过SOE开发经验的人都知道,SOE开发过程中调试是非常麻烦的.任何在SOE开发模板中的修改都需要重新编译工程,重新生成.soe 文 ...
- Pycharm选中代码无法Backspace直接删除
现象 如图,选中代码后,按习惯来说,直接Backspace就可以删除被选中代码. 但选中后再按“Backspace”,只会改变(扩选)选中范围. 解决 点击“工具栏”里的“Tool”,去掉勾选的Vim ...
- idea导入项目出现Unable to import maven project: See logs for details提示(转载)
摘要: 从git上面check多工程项目后,maven不能正常下载相应的依赖,最后查询国外网站,找出错误原因.按照此步骤,可以自动配置好每个工程的module. 删除项目根目录下.idea文件夹 关闭 ...
- tensorflow 的rnn的示例 ptb_word_lm.py 的完整代码
其训练数据源在我的空间里,名字为:tensorflow的ptb-word-lm示例的训练数据源.tgz 讲解参见另一篇文章: http://www.cnblogs.com/welhzh/p/6739 ...
- 安装SQL2012
1. 优先安装软件 1. net framework3.5. 2. 在安装SQL SERVER 2012前需要3.5的支持.在WIN 2012系统可以在系统管理的添加角色和功能中安装,如下将[.NET ...
- Part1.2 、RabbitMQ -- Publish/Subscribe 【发布和订阅】
python 目录 (一).交换 (Exchanges) -- 1.1 武sir 经典 Exchanges 案例展示. (二).临时队列( Temporary queues ) (三).绑定(Bind ...
- go——字典(二)
字典是一种数据结构,用于存储一系列无序的键值对. 字典是基于键来存储值.字典功能强大的地方是能够基于键快速检索数据. 键就像索引一样,指向与键关联的值. 1.内部实现 字典是一个集合,可以使用类似处理 ...
- knit使用安装 ecstore knit位置 及调用路径
菜鸟一枚,接触php不久. 情况一: 最简单的: windows下, php文件引用kint 将kint放入c盘 php/pear下,我一般将kint包改名字为kint 结构如下: c:/php/pe ...
- 08 Spring框架 AOP (一)
首先我们先来介绍一下AOP: AOP(Aspect Orient Programming),面向切面编程,是面向对象编程OOP的一种补充.面向对象编程是从静态角度考虑程序的结构,面向切面编程是从动态的 ...
- 字符数组(char)和字符串(string)的转换
#include<iostream>#include<string>using namespace std;void main(){ string LyuS = "W ...