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群发邮件实例代码
Jan 03 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
django连接mysql数据库及建表操作实例详解
Dec 10 Python
Python使用docx模块实现刷题功能代码
Feb 13 Python
Python自带的IDE在哪里
Jul 01 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Python合并pdf文件的工具
Jul 01 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
js实现简单计算器
2015/11/22 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
angular多语言配置详解
2019/05/16 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
机械制造与自动化应届生求职信
2013/11/16 职场文书
大学学风建设方案
2014/05/04 职场文书
运动会演讲稿300字
2014/08/25 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
汉语拼音教学反思
2016/02/22 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
2016年安全月活动总结
2016/04/06 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android