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如何实现excel数据添加到mongodb
Jul 30 Python
python结合API实现即时天气信息
Jan 19 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python 数据结构之队列的实现
Jan 22 Python
python简单实现操作Mysql数据库
Jan 29 Python
Python实现ping指定IP的示例
Jun 04 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
Python类的动态绑定实现原理
Mar 21 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
python杀死一个线程的方法
2015/09/06 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python turtle画图库&&画姓名实例
2020/01/19 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
出纳试用期自我鉴定
2014/04/07 职场文书
团结演讲稿范文
2014/05/23 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
全网非常详细的pytest配置文件
2022/07/15 Python