python编写命令行交互界面,python制作命令行工具
在本节中,我们将使用大蟒开发命令行界面。但是在我们深入研究程序之前,让我们首先了解命令行。
由于存在计算机程序,因此一直在使用命令行,并且命令行是基于命令构建的。命令行程序是从壳或命令行运行的程序
命令行界面提供了用户界面,可通过在终端,外壳或控制台上键入命令来导航而不是使用鼠标。
命令行界面(CLI)以可执行文件开头。我们可以根据它们的开发方式将一些参数传递给脚本,例如:参数:我们需要提供传递给脚本的此参数。如果我们不提供它,则硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)会出现错误。例如,numpy是此命令中的参数:pip安装编号。
选项:一个可选参数,带有名称和值对,如:pip安装django缓存目录./我的缓存目录其中缓存目录是选项参数,应使用值。/我的缓存目录作为缓存目录。
标志:另一个可选参数,它告诉脚本启用或禁用某种行为,例如救命参数。
计算机编程语言提供了多个大蟒软件包来编写命令行界面,例如点击。单击允许我们用很少的几行代码来构建命令行界面。
以下是不使用点击包的命令行界面程序。编写硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)程序可能不如我们使用"点击"程序包获得的优雅,因为"点击"使您可以遵循"不要重复自己"(干)的原则。
命令行界面,不使用点击包importsys
随机输入
defdo_work():
functiontohandlecommandline用法
args=sys.argv
args=args[1:]# Firstelementofargsisthefilename
iflen(args)==0:
print( Youhavenotpassedanycommandsin!)
否则:
论坛:
ifa== - help :
打印(“基本命令行程序”)
打印(选项:)
打印(-help-showthisbasichelpmenu .)
打印(-monty-showaMontyPythonquote )
print(-veg-showarandomvegetable )
elifa== - monty :
打印(他notthemessiah—他saverynaughtyboy’)
elifa== - veg :
print(random.choice([番茄, Reddis ,胡萝卜,土豆,芜菁]))
否则:
打印(无法识别的参数)
if__name__==__main__ :
做工作()
输出结果c:\ Python \ Python 361 Python CLI _ interp 1。皮-蒙蒂
他不是梅西亚——他是个淘气的男孩
c:\ Python \ Python 361 Python CLI _ interp 1。py-帮助
基础命令行程序
选项:
-help-showthisbisalchelpmenu .
-蒙蒂-showaMontyPythonquote .
蔬菜淋浴蔬菜
c:\ Python \ Python 361 Python CLI _ interp 1。蔬菜
番茄
c:\ Python \ Python 361 Python CLI _ interp 1。py误差
无法识别的参数。
如您在以上程序中所见,更改参数名称并没有提供很大的灵活性。
下面是使用大蟒点击包实现硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)的同一程序导入点击
随机输入
@click.command()
@click.option( - monty ,default=False,help=ShowaMontyPythonquote .)
@click.option( - veg ,default=False,help=Showarandomvegetable .)
defdo_work(monty,veg):
基础单击示例将遵循您命令
ifmonty:
打印(他notthemessiah—他saverynaughtyboy’)
ifveg:
print(random.choice([番茄, Reddis ,胡萝卜,土豆,芜菁]))
if__name__==__main__ :
做工作()
输出结果c:\ Python \ Python 361 Python CLI _ interp 2。py-帮助
用法:CLI _ interp 2。py[选项]
基本单击示例将遵循您的命令
选项:
-montyTEXTShowaMontyPythonquote .
蔬菜蔬菜。
- helpShowthismessageandexit .
上面的程序显示,使用"点击"包编写硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)更加容易,并且节省了许多程序员的精力。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。