Python命令行实现

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: Python命令行实现借助`click`模块,它提供了一种简单高效的方式来构建CLI应用。要开始,确保安装了`click`(`pip install click`)。基本示例是创建一个打印问候的程序,通过`@click.command()`和`@click.argument()`装饰器接收用户输入。`@click.option()`用于添加命令选项,而`@click.group()`则用于创建包含多个子命令的工具。通过组合参数和选项,可以构建更复杂的CLI应用。`click`的强大功能使得创建CLI变得轻松。

Python命令行实现

Python命令行实现主要依赖于 click 模块。

click 是一个用于创建命令行接口(CLI)的 Python 包。它具有高度的可配置性,能够以尽可能少的代码创建出功能强大的 CLI 应用。

click 官方文档

检查安装

首先,确认是否安装 click, 没有安装执行下面命令安装

pip install click

演示示例

Hello word 例子
这是一个最小的 CLI 程序,用于向用户问好:

import click

@click.command()
@click.argument('name')
def hello(name):
    click.echo(f'Hello, {name}!')

if __name__ == '__main__':
    hello()

这个程序接收一个名为 name 的参数,然后输出问候语。如果将此代码保存为 cli_hello.py,你可以在命令行中运行:

python cli_hello.py Jack

输出将会是:

Hello, Jack!

使用选项

你可以使用 @click.option 装饰器为命令添加选项。例如:

import click

@click.command()
@click.option('--count', default=1, help='Number of loops .')
@click.argument('name')
def hello(count, name):
    for _ in range(count):
        click.echo(f'Hello, {name}!')

if __name__ == '__main__':
    hello()

你可以通过以下方式运行这个程序:

python cli_hello.py --count 3 Jack

输出将会是:

Hello, Jack!
Hello, Jack!
Hello, Jack!

使用命令组

有时候你可能需要创建一个包含多个子命令的 CLI 工具。你可以使用 @click.group 来实现:

import click

@click.group()
def cli():
    pass

@cli.command()
def initdb():
    click.echo('Initialized the database')

@cli.command()
def dropdb():
    click.echo('Dropped the database')

if __name__ == '__main__':
    cli()

保存为 manage.py 后,可以这样运行:

python manage.py initdb

输出:

Initialized the database

或者:

python manage.py dropdb

输出:

Dropped the database

组合参数和选项

你可以将参数和选项组合在一起使用:

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--greeting', default='Hello', help='Greeting to use.')
@click.argument('name')
def hello(count, greeting, name):
    for _ in range(count):
        click.echo(f'{greeting}, {name}!')

if __name__ == '__main__':
    hello()

运行:

python cli_hello.py --count 2 --greeting Hi Jack

输出:

Hi, Jack!
Hi, Jack!

小结

click 是一个非常强大的工具,可以帮助你轻松创建功能强大的命令行接口。通过组合使用 @click.command@click.option@click.argument 等装饰器,你可以创建各种复杂的 CLI 应用。

目录
相关文章
|
10月前
|
Python
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
311 0
|
24天前
|
Shell 数据处理 开发者
|
30天前
|
测试技术 Python
python 命令行参数 argparse详解
这篇文章是关于Python命令行参数解析库`argparse`的详细解释和使用教程。文中提供了完整的代码模板,包括如何定义命令行参数、如何添加位置参数、可选参数和布尔参数,以及如何解析和使用这些参数。文章还包含了示例代码和测试用例,以展示如何在实际程序中应用`argparse`库。
25 0
|
1月前
|
Linux UED iOS开发
Python colorama 设置控制台、命令行输出彩色文字
Python colorama 设置控制台、命令行输出彩色文字
26 0
|
1月前
|
SQL 分布式计算 算法
【python】python指南(二):命令行参数解析器ArgumentParser
【python】python指南(二):命令行参数解析器ArgumentParser
26 0
|
1月前
|
并行计算 数据可视化 Shell
Day 2/100:命令行下执行python代码!
Day 2/100:命令行下执行python代码!
27 0
|
1月前
|
Python
python命令行解析模块argparse
python命令行解析模块argparse
|
2月前
|
Python
`cmd`模块是Python标准库中的一个模块,它提供了一个简单的框架来创建命令行解释器。
`cmd`模块是Python标准库中的一个模块,它提供了一个简单的框架来创建命令行解释器。
|
2月前
|
存储 Python 容器
`click`是一个用于构建命令行接口的Python包,它提供了简单、可组合的命令行解析器。
`click`是一个用于构建命令行接口的Python包,它提供了简单、可组合的命令行解析器。
|
3月前
|
Python
python命令行传递参数的两种方式
python在命令行运行.py文件时,如何在命令行传递参数给运行程序,python默认提供了sys模块的系统参数属性实现接收命令行中的外部参数。 另一种则是通过argparse模块实现的,argparse模块可以实现事先对命令行参数的初始化,更加的便于命令行参数的管理。