fire的使用

fire是Google开源的用于生成命令行接口的包


  • 利用fire可以使得我们在BASH中就可以直接调用.py文件中的函数或者类。
  • fire有几种不同的用法,下面逐个介绍

version 1:单个函数


example.py文件中定义原函数:

import fire
import datetime

def cal_days(date_str1, date_str2):
  date_str1 = str(date_str1)
  date_str2 = str(date_str2)
  d1 = datetime.datetime.strptime(date_str1, '%Y%m%d')
  d2 = datetime.datetime.strptime(date_str2, '%Y%m%d')
  delta = d1 - d2
  return delta.days
if __name__ == '__main__':
  fire.Fire(cal_days)

BASH中引用

$ python example.py 20170421 20170401
20

Version 2:多个函数


import fire
import datetime

def cal_days(date_str1, date_str2):
  '''计算两个日期之间的天数'''
  date_str1 = str(date_str1)
  date_str2 = str(date_str2)
  d1 = datetime.datetime.strptime(date_str1, '%Y%m%d')
  d2 = datetime.datetime.strptime(date_str2, '%Y%m%d')
  delta = d1 - d2
  return delta.days
def days2today(date_str):
  '''计算某天距离今天的天数'''
   date_str = str(date_str)
  d = datetime.datetime.strptime(date_str, '%Y%m%d')
  delta = datetime.datetime.now() - d
  return delta.days
if __name__ == '__main__':
  fire.Fire()

BASH中引用

$ python example.py days2today 20170401
21
$ python example.py cal_days 20170422 20170401
21

Version 3:利用main()


import fire
def hello(name):
  return 'Hello {name}!'.format(name=name)
def main():
  fire.Fire(hello)
if __name__ == '__main__':
  main()

Version 4:进阶


以我目前的理解fire,就是将文件中的类或者函数暴露给命令行。
除了利用fire.Fire(),还有其他用法:

  • fire.Fire({str_1: fun_1, str_2: fun_2})
  • fire.Fire( )
  • 更多使用方法见

你可能感兴趣的:(fire的使用)