python获取命令行参数实例方法讲解


Posted in Python onNovember 02, 2020

Python 在命令行解析方面给出了类似的几个选择:自己解析, 自给自足(batteries-included)的方式,以及大量的第三方方式

自己解析

你可以从 sys 模块中获取程序的参数。

import sys
 
if __name__ == '__main__':
   for value in sys.argv:
       print(value)

自给自足

在 Python 标准库中已经有几个参数解析模块的实现: getopt 、 optparse ,以及最近的 argparse 。argparse 允许程序员为用户提供一致的、有帮助的用户体验,但就像它的 GNU 前辈一样,它需要程序员做大量的工作和“ 模板代码 ”才能使它“奏效”。

from argparse import ArgumentParser
 
if __name__ == "__main__":
 
   argparser = ArgumentParser(description='My Cool Program')
   argparser.add_argument("--foo", "-f", help="A user supplied foo")
   argparser.add_argument("--bar", "-b", help="A user supplied bar")
   
   results = argparser.parse_args()
   print(results.foo, results.bar)

CLI 的现代方法

Click 框架使用 装饰器 的方式来构建命令行解析。

import click
 
@click.command()
@click.option("-f", "--foo", default="foo", help="User supplied foo.")
@click.option("-b", "--bar", default="bar", help="User supplied bar.")
def echo(foo, bar):
    """My Cool Program
   
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
   
if __name__ == "__main__":
echo()

在 Click 接口中添加参数就像在堆栈中添加另一个装饰符并将新的参数添加到函数定义中一样简单。

知识拓展:

Typer 建立在 Click 之上,是一个更新的 CLI 框架,它结合了 Click 的功能和现代 Python 类型提示 。使用 Click 的缺点之一是必须在函数中添加一堆装饰符。CLI 参数必须在两个地方指定:装饰符和函数参数列表。Typer 免去你造轮子 去写 CLI 规范,让代码更容易阅读和维护。

import typer
 
cli = typer.Typer()
 
@cli.command()
def echo(foo: str = "foo", bar: str = "bar"):
    """My Cool Program
   
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
   
if __name__ == "__main__":
cli()

 

到此这篇关于python获取命令行参数实例方法讲解的文章就介绍到这了,更多相关python获取命令行参数实现方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中cPickle用法例子分享
Jan 03 Python
Python实现统计文本文件字数的方法
May 05 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
python实现手势识别的示例(入门)
Apr 15 Python
Python实现手势识别
Oct 21 Python
pytorch显存一直变大的解决方案
Apr 08 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 #Python
详解tensorflow之过拟合问题实战
Nov 01 #Python
python cookie反爬处理的实现
Nov 01 #Python
10个python爬虫入门实例(小结)
Nov 01 #Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 #Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 #Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 #Python
You might like
PHP获取当前页面URL函数实例
2014/10/22 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
jquery获取input表单值的代码
2010/04/19 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
微信小程序登录换取token的教程
2018/05/31 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
keras K.function获取某层的输出操作
2020/06/29 Python
python实现马丁策略的实例详解
2021/01/15 Python
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
大学生毕业自荐信
2013/10/10 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
公司合作意向书
2014/04/01 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
2014年调度员工作总结
2014/11/19 职场文书
农村党支部承诺书
2015/04/30 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
介绍信应该怎么开?
2019/04/03 职场文书