Python命令行实现

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 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 应用。

目录
相关文章
|
8月前
|
Python
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
245 0
|
24天前
|
Python
python命令行传递参数的两种方式
python在命令行运行.py文件时,如何在命令行传递参数给运行程序,python默认提供了sys模块的系统参数属性实现接收命令行中的外部参数。 另一种则是通过argparse模块实现的,argparse模块可以实现事先对命令行参数的初始化,更加的便于命令行参数的管理。
|
2月前
|
存储 开发者 Python
Python中的argparse模块:命令行参数解析的利器
Python中的argparse模块:命令行参数解析的利器
27 2
|
2月前
|
开发工具 Python
[oeasy]python0010_怎么用命令行保存文件
[oeasy]python0010_怎么用命令行保存文件
28 1
|
2月前
|
数据安全/隐私保护 Python
【python3.6】python安装PCL(适用命令行或pycham中)
【python3.6】python安装PCL(适用命令行或pycham中)
|
2月前
|
Linux iOS开发 MacOS
Python 进阶指南(编程轻松进阶):二、环境配置和命令行
Python 进阶指南(编程轻松进阶):二、环境配置和命令行
76 0
|
7月前
|
块存储 Python
rados 命令行函数 调试 ceph python
rados 命令行函数 调试 ceph python
43 0
|
10月前
|
NoSQL Linux C++
Linux下使用命令行调试Python程序
Linux下使用命令行调试Python程序
361 0
Linux下使用命令行调试Python程序
|
11月前
|
存储 开发工具 开发者
命令行参数解析神器:深入剖析Python中的argparse模块
命令行参数解析神器:深入剖析Python中的argparse模块
|
12月前
|
存储 Python
【Python标准库】argparse——命令行选项、参数和子命令解析器
【Python标准库】argparse——命令行选项、参数和子命令解析器

相关实验场景

更多