Typer
Typer[1] 是一个构建命令行程序的python包,它具有以下几个优点:
shell
pip install "typer[all]"
test_app
命令,打印Hello
+ 参数import typer
app = typer.Typer()
@app.command()
def test_app(name: str):
print(f"Hello {name}")
if __name__ == "__main__":
app()
typer
中,只要给每一个函数加上@app.command()
装饰器,那么这个函数就成为了一个命令。
import typer
app = typer.Typer()
@app.command()
def test_1(name: str):
print(f"Hello {name}")
@app.command()
def test_2(age: int):
print(f"{age} years old")
if __name__ == "__main__":
app()
需要多少个命令,写多少个函数即可。
typer
中,命令函数中的参数,就自动变成了命令的参数,因此用户很容易设置参数。
import typer
app = typer.Typer()
@app.command()
def test_cli(name: str, age: int):
print(f"Hello {name} \n age: {age}")
if __name__ == "__main__":
app()
需要多少个命令参数,设置多少个函数参数即可
例如git
命令还存在git add
和 git commit
等,因此typer
也支持给命令设置子命令。
import typer
app = typer.Typer()
sub1 = typer.Typer()
app.add_typer(sub1, name="sub1")
sub2 = typer.Typer()
app.add_typer(sub2, name="sub2")
@sub1.command("sub1")
def sub1_item(space1: str):
print(f"Creating sub1: {sub1}")
@sub2.command("sub2")
def sub2_item(space1: str):
print(f"Creating sub1: {sub2}")
if __name__ == "__main__":
app()
以上只是对typer
的基础介绍,typer
还支持:
3
Typer
的优点和功能远不于此,本文主要对typer
, 一个python中构建命令行程序的包,做了一个简要介绍,主要起抛砖引玉的作用,如果有这方面需求的小伙伴可以自行研究。
[1]
Typer: https://typer.tiangolo.com