目的:想从命令行通过命令来指定是否执行程序中的某个函数/模块

文章目录

  • 例1:
    • 方法1
    • 方法二
  • 更新
    • vars()在argparse中的使用

//memobio2015.u-strasbg.fr/conference/FICHIERS/Documentation/doc-python-pdf/howto-argparse.pdf)
关于另一个例子: https://blog.csdn.net/lyc_yongcai/article/details/73676930
这里只举例说明(原因是看了很多博文之后,还是没有解决笔者上面说的那个问题,即如何从命令行决定是否执行某段函数问题)

例1:

设定一个参数,名为foreground,简写f(即在终端可以输入–foreground也可以输入-f。跟自带的help很像,可以输入–help,也可以输入-h);现在要求,当foreground=True时,执行a+b,当等于false时执行a-b。

方法1

借助parser里面参数设定类型type默认是str,代码如下


import argparseparser = argparse.ArgumentParser()
#这里加入的参数默认类型type是字符串,而我们输入的是字符串,所以不用写type=str
parser.add_argument("-f",'--foreground',default='True',choices=['True', 'False'])
args = parser.parse_args()def add(a,b):if args.foreground=='True':return a+belse: return a-bprint(add(3,2))

我们默认情况下执行a+b,即default=‘True’

终端执行命令解释:
用python执行程序,先用-h来看有多少变量,发现有help(自带)和-f,其中-f可以取两个值,True和False, 并且-f的说明是input foreground components.

python test.py -h

由于我们默认-f是True,所以直接执行test.py得到5

python test.py

这和我们写-f True是一样的结果。最后我们写成False,发现执行的是a-b。

方法二

将类型type改为bool算符。这里有个问题,实际上argparse没有bool这种类型,只要出现不是空字符,bool就为真。因此实际上不能用这种方法,因为-f只要有输入,即不为空,就认为是真,但是可以从另一方面考虑,即先设定为false,这样默认运行假,即不运行真的部分,当输入True时则运行真的部分(如前所述,写false也会运行真)

import argparseparser = argparse.ArgumentParser()
parser.add_argument("-f",'--foreground',default=False,help="input foreground components")
args = parser.parse_args()def add(a,b):if args.foreground:return a+belse: return a-bprint(add(3,2))

更新

vars()在argparse中的使用

import argparseparser = argparse.ArgumentParser()
parser.add_argument('-Ap','--Add_prior',default='True', choices=['True','False'],help='Whether to consider prior information, default=True')
parser.add_argument('-skyf','--sky_fraction',default='small',choices=['small','large'],help='Choose a small(0.05)/large(0.7) sky fraction, default=small')
parser.add_argument('-r','--r',default=0.01,choices=['0','0.1','0.01'],help='input tensor to scalar ratio, default=0.01')
parser.add_argument('-nu1',default=95,help='input first frequency, default=95')
parser.add_argument('-nu2',default=150,help='input second frequency, default=150')
args = parser.parse_args()


可见vars()是将args里的参数和参数值生成为一个字典

python argparse举例说明相关推荐

  1. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  2. Python argparse.ArgumentParser的add_argument()用法

    argsparse是python的命令行解析的标准模块,内置于python,不需要安装.argparse 将会从 sys.argv 解析出这些参数.本文主要介绍 Python的argparse和add ...

  3. Python argparse使用方法介绍

    官方文档地址 Python argparse使用方法介绍 1. argparse使用流程 # 1. 导入包 import argparse # 2. 实例化对象 parser = argparse.A ...

  4. 常用正则表达式最强汇总(含 Python 代码举例讲解 + 爬虫实战)

    本文带大家学习正则表达式,并通过 python 代码举例讲解常用的正则表达式 最后实战爬取小说网页:重点在于爬取的网页通过正则表达式进行解析. 正则表达式语法 Python 的 re 模块(正则表达式 ...

  5. python argparse库_Python的argparse库使用详解

    argparse是python标准库里面用来处理命令行参数的库 命令行参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现的位置来确定的 如:[root@openstack_1 /]# ls ...

  6. python argparse库_python标准库之argparse

    argparse的使用 argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并 ...

  7. python argparse中action 的可选参数store_true

    # test.py import argparseif __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argu ...

  8. Python argparse

    转自:https://blog.ixxoo.me/argparse.html 原文:Argparse Tutorial 译者:likebeta 本教程是对于Python标准库中推荐使用的命令行解析模块 ...

  9. Python Argparse模块

    argparse模块 在Python中,argparse模块是标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块.argparse模块能够根据程序中的定义从sys.argv中解析 ...

最新文章

  1. python正则获取网页标签里面的内容
  2. 特征阻抗输入阻抗输出阻抗_软件阻抗说明
  3. Android Studio 插件
  4. redis和sqlserver数据同步_SQLServer数据库之redis数据库的数据导入到SQLServer数据库中...
  5. webbrowser中localhost和发布的地址_004、Spring Boot中的项目属性配置
  6. 网络操作系统第1章习题
  7. C语言课后习题(9)
  8. Java(Android)游戏开发框架LGame-0.2.7发布
  9. Windows基于gitee使用hexo搭建个人博客笔记
  10. 读取usb口数据_Mixly 第12课 模拟值读取实验串口使用
  11. 30hibernate_fetch_1_select
  12. Java软件低级错误:短路运算和非短路运算的区别
  13. 反射:类,构造器,方法使用
  14. DNN硬件加速器设计2 -- Survey of DNN Development Resouces and DNN Hardware(MIT)
  15. mac升级php后旧版本还在,老版本mac如何升级系统
  16. java扫码枪键盘_浅谈在react中如何实现扫码枪输入
  17. 攻城掠地(优先队列)
  18. c# Excel 添加组合Range区域,方便选择Select()删除 Delete()
  19. html插入swf自动播放,如何在HTML页面中嵌入SWF文件?
  20. 学习笔记:发布自己的python模块安装包

热门文章

  1. 使用舵机PWM信号控制直流电机的转动
  2. 磁悬浮地球仪底座驱动电路板分析
  3. 实时获取vuex更新的新数据_三网运营商大数据实时截流,网站手机号获取
  4. 关于计算机组装的作文,电脑小白组装电脑,能写出这样的配置,在下佩服!
  5. pdo mysql bindparam_pdo连接mysql prepare,bindParam插入数据
  6. 禅道测试套件怎么用_优质单元测试的十大标准,你有遵循吗?
  7. FPGA之道(3)数字系统之间的接口电平标准
  8. 通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)
  9. linux下配置java
  10. 进程间通信-Queue