让命令行参数更简洁—google-fire库

作者: 生信编程日常 | 来源:发表于2020-04-01 16:58 被阅读0次

    在python中使用命令行参数一般会用argparse库,不过Google的Fire库可以让我们更加方便。现在GitHub上已经有16k多star和1k fork,链接:https://github.com/google/python-fire/blob/master/docs/guide.md

    1. 安装:
    pip install fire
    
    1. 简单的例子:
    # 写入example.py
    import fire
    
    def hello(name):
        return "Hello, {}!".format(name)
    
    if __name__ == '__main__':
        fire.Fire()
    

    运行python example.py hello World, 返回:
    Hello, World!

    同样可以在主函数中直接调用hello,省去了命令行中写的函数名称:

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

    与上面返回同样的结果。

    也可以在不改变源代码的基础上运行:

    # 写入example2.py
    def hello(name):
        return "Hello, {}".format(name)
    

    python -m fire example2 hello --name=World
    返回结果同上。

    1. 多种命令
    # 写入example3.py
    
    import fire
    
    def add(x, y):
        return x + y
    
    def sub(x, y):
        return x - y
    
    def multify(x, y):
        return x * y
    
    if __name__ == '__main__':
        fire.Fire()
    

    分别运行一下代码:

    python example3.py add 2 3
    python example3.py sub 2 3
     python example3.py multify 2 3
    

    分别返回:5;-1;6.

    也可以写成class:

    import fire
    
    class Cal():
        def add(self, x, y):
            return x + y
    
        def sub(self, x, y):
            return x - y
    
        def multify(self, x, y):
            return x * y
    
    if __name__ == '__main__':
        fire.Fire(Cal)
    

    此外,还有命令分组等功能,详细内容可以参见github中的手册。

    欢迎关注公众号~


    相关文章

      网友评论

        本文标题:让命令行参数更简洁—google-fire库

        本文链接:https://www.haomeiwen.com/subject/xxyauhtx.html