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中stdout输出不缓存的设置方法
May 29 Python
Python对两个有序列表进行合并和排序的例子
Jun 13 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
redis之django-redis的简单缓存使用
Jun 07 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
python模糊图片过滤的方法
Dec 14 Python
Python中new方法的详解
Jan 15 Python
Python随机函数库random的使用方法详解
Aug 21 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
Python基础之元编程知识总结
May 23 Python
Python 数据可视化工具 Pyecharts 安装及应用
Apr 20 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中使用XML
2006/10/09 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
Yii全局函数用法示例
2017/01/22 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
python实现进程间通信简单实例
2014/07/23 Python
简单了解什么是神经网络
2017/12/23 Python
python散点图实例之随机漫步
2018/08/27 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
几道PHP的面试题
2012/05/19 面试题
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
毕业寄语大全
2014/04/09 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS