python 写命令行界面_使用Python进行命令行界面编程?

在本节中,我们将使用python开发命令行界面。但是在我们深入研究程序之前,让我们首先了解命令行。

由于存在计算机程序,因此一直在使用命令行,并且命令行是基于命令构建的。命令行程序是从Shell或命令行运行的程序

命令行界面提供了用户界面,可通过在终端,外壳或控制台上键入命令来导航而不是使用鼠标。

命令行界面(CLI)以可执行文件开头。我们可以根据它们的开发方式将一些参数传递给脚本,例如:参数:我们需要提供传递给脚本的此参数。如果我们不提供它,则CLI会出现错误。例如,numpy是此命令中的参数:pip install numpy。

选项:一个可选参数,带有名称和值对,如:pip install django –cache-dir ./my-cache-dir其中–cache_dir是选项参数,应使用值./my-cache-dir作为缓存目录。

标志:另一个可选参数,它告诉脚本启用或禁用某种行为,例如–help参数。

Python提供了多个python软件包来编写命令行界面,例如“ click”。单击允许我们用很少的几行代码来构建命令行界面。

以下是不使用click包的命令行界面程序。编写CLI程序可能不如我们使用“ click”程序包获得的优雅,因为“ click”使您可以遵循“不要重复自己”(DRY)的原则。

命令行界面,不使用点击包import sys

import random

def do_work():

""" Function to handle command line usage"""

args = sys.argv

args = args[1:] # First element of args is the file name

if len(args) == 0:

print('You have not passed any commands in!')

else:

for a in args:

if a == '--help':

print('Basic command line program')

print('Options:')

print(' --help -> show this basic help menu.')

print(' --monty -> show a Monty Python quote.')

print(' --veg -> show a random vegetable')

elif a == '--monty':

print('He’s not the Messiah—he’s a very naughty boy')

elif a == '--veg':

print(random.choice(['Tomato','Reddis','Carrot', 'Potato', 'Turnip']))

else:

print('Unrecognised argument.')

if __name__ == '__main__':

do_work()

输出结果c:\Python\Python361>python cli_interp1.py --monty

He’s not the Messiah—he’s a very naughty boy

c:\Python\Python361>python cli_interp1.py --help

Basic command line program

Options:

--help -> show this basic help menu.

--monty -> show a Monty Python quote.

--veg -> show a random vegetable

c:\Python\Python361>python cli_interp1.py --veg

Tomato

c:\Python\Python361>python cli_interp1.py --error

Unrecognised argument.

如您在以上程序中所见,更改参数名称并没有提供很大的灵活性。

下面是使用python click包实现CLI的同一程序。import click

import random

@click.command()

@click.option('--monty', default=False, help='Show a Monty Python quote.')

@click.option('--veg', default=False, help='Show a random vegetable.')

def do_work(monty, veg):

""" Basic Click example will follow your commands"""

if monty:

print('He’s not the Messiah—he’s a very naughty boy')

if veg:

print(random.choice(['Tomato','Reddis','Carrot', 'Potato', 'Turnip']))

if __name__ == '__main__':

do_work()

输出结果c:\Python\Python361>python cli_interp2.py --help

Usage: cli_interp2.py [OPTIONS]

Basic Click example will follow your commands

Options:

--monty TEXT Show a Monty Python quote.

--veg TEXT Show a random vegetable.

--help Show this message and exit.

上面的程序显示,使用“ click”包编写CLI更加容易,并且节省了许多程序员的精力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值