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使用any判断一个对象是否为空的方法
Nov 19 Python
Python批量按比例缩小图片脚本分享
May 21 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
Python编程中的for循环语句学习教程
Oct 14 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
Python global全局变量函数详解
Sep 18 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
python的移位操作实现详解
Aug 21 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python xmltodict模块安装及代码实例
Oct 05 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
python抓取百度首页的方法
2015/05/19 Python
Python通过select实现异步IO的方法
2015/06/04 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
好矿嫂事迹材料
2014/01/21 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
我的祖国演讲稿
2014/05/04 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
科学育儿宣传标语
2014/10/08 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
医院感染管理制度
2015/08/05 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书