python库fire使用简介
Python 简介 使用
2023-09-14 09:08:34 时间
简介
目前python命令行解析库用过的有:argparse(python自带)、click(Flask作者写的)
但二者相比fire这个库,用起来都不够 “简单”,fire一行代码能把函数导出到命令行窗口。
argparse用法示例
# arg_test.py import argparse def counter(file_type=None): return {file_type: 100} # 初始化解析器 parser = argparse.ArgumentParser() # 定义参数 parser.add_argument("-f", "--file", help="统计指定文件类型") # 解析 args = parser.parse_args() print(counter(args.file))
运行:
$ python arg_test.py -f python {'python': 100}
click用法示例
# firetest.py import click @click.command() @click.option("-f", "--file", help="统计制定文件类型") def counter(file=None): click.echo({file: 100}) if __name__ == '__main__': print(counter())
运行:
$ python firetest.py -f python {u'python': 100}
fire安装
# pip安装:pip install fire # conda安装:conda install fire -c conda-forge # 源码安装: git拿到代码,执行:python setup.py install
fire使用示例
通常:python [文件名] [函数名] [参数]
官方文档:https://github.com/google/python-fire/blob/master/docs/guide.md
fire.Fire()
直接在程序中调用 fire.Fire(),不需要修改目标函数,fire 会把当前模块下的所有对象导出到命令行中
# firetest.py import fire def foo(name): return 'foo {name}!'.format(name=name) def bar(name): return "bar {name}".format(name=name) if __name__ == '__main__': fire.Fire()
运行:
# 调用方式:python [文件名] [函数名] [参数] # 函数名后面直接跟参数值 $ python firetest.py foo hello foo hello! # 也可以显示地先指定参数名,再跟参数值 $ python firetest.py bar --name hello bar hello!
fire.Fire(<function>)
可以指定某个函数导出到命令行
import fire def foo(name): return 'foo {name}!'.format(name=name) if __name__ == '__main__': fire.Fire(foo)
运行:
# 调用方式:python [函数名] [参数] $ python firetest.py hello foo hello!
当 Fire 接收函数 foo 作为参数时,只加载 foo 函数到命令行中,此时,在命令行中运行时也无需再指定函数名字,只需要指定参数就好。
fire.Fire(<dict>)
Fire 不仅可以接收函数,还可以接收字典对象作为参数,可在字典中配置那些函数需要导出到命令行中。
例如,有加减乘3个函数,我们可以选择性的选择其中2个导出到命令行:
import fire def add(x, y): return x + y def multiply(x, y): return x * y def subtract(x, y): return x - y if __name__ == '__main__': fire.Fire({ 'add': add, 'subtract': subtract, })
运行:
$ python firetest.py add 1 4 5 $ python firetest.py subtract 1 4 -3 $ python firetest.py multiply 1 4 # multiply 会报错,因为没有导出
fire.Fire(<object>)
还可以接收类的实例对象
import fire class Calculator(object): def add(self, x, y): return x + y def multiply(self, x, y): return x * y if __name__ == '__main__': calculator = Calculator() fire.Fire(calculator)
运行:
$ python firetest.py add 10 20
30
$ python firetest.py multiply 10 20
200
相关文章
- Python简介
- Python 爬虫入门实战
- Python - 属性简介"__name__"
- Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例(在数据缺失和test数据内存在新值(train数据未出现过)环境下的数据LE化)之详细攻略
- Py之scikit-image:Python库之skimage的简介、安装、使用方法之详细攻略
- IDE之Eric:Python的IDE之eric的简介、安装、使用方法之详细攻略
- Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略
- Python语言学习之lambda:lambda函数的简介、使用方法、案例大全之详细攻略
- Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略
- Python之youtube_dl:youtube_dl库的简介、安装、使用方法之详细攻略
- Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略
- Python之tushare:tushare库的简介、安装、使用方法之详细攻略
- Python之selenium:selenium库的简介、安装、使用方法之详细攻略
- Python之gmplot:gmplot库的简介、安装、使用方法之详细攻略
- Python之sklearn-pandas:sklearn-pandas库函数的简介、安装、使用方法之详细攻略
- Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略
- Python之Pyforest:Pyforest的简介、安装、使用方法之详细攻略
- Py之demjson:Python库之demjson的简介、安装、使用方法详细攻略
- Py之pdfkit:python的库之pdfkit简介、安装、使用方法详细攻略
- Py之matplotlib:python包之matplotlib库图表绘制包的简介、安装、使用方法(matplotlib颜色大全)详细攻略
- DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略