argparse是一个常用的库函数,使用它的时候我们在命令行中不仅仅可以运行python文件,更可以零时调整参数,十分方便。

首先,如果你只是希望传一丢丢数据进去,那么只看下面两行就行了

import sys
print("输入的参数为:%s" % sys.argv[1])
>python demo.py 1
输入的参数为:1

但是当要传很多的时候,还是接着往下看

基本用法,这是核心的两行:

parser = argparse.ArgumentParser()
parser.parse_args()

然后是可以添加的部分

 
# description参数可以用于描述脚本的参数作用,默认为空
parser=argparse.ArgumentParser(description="A description of what the program does")
parser.add_argument("echo")        # 默认参数的设定
parser.add_argument("-v", "--verbosity", help="increase output verbosity") #可选参数 parser.parse_args()

default:没有设置值情况下的默认参数

parser.add_argument('--name', default='Great')

required: 表示这个参数是否一定需要设置

  如果设置了required=True,则在实际运行的时候不设置该参数将报错

parser.add_argument('-name', required=True)

type:参数类型

  默认的参数类型是str类型,如果你的程序需要一个整数或者布尔型参数,你需要设置type=inttype=bool

parser.add_argument('-number', type=int)

choices:参数值只能从几个选项里面选择

parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

help:指定参数的说明信息

parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'],
help='the architecture of CNN, at this time we only support alexnet and vgg.')

dest:设置参数在代码中的变量名

  argparse默认的变量名是---后面的字符串,但是你也可以通过dest=xxx来设置参数的变量名,然后在代码中用args.xxx来获取参数的值

nargs: 设置参数在使用可以提供的个数

parser.add_argument('-name', nargs=x)

x的候选值和含义如下

N   参数的绝对个数(例如:3)
'?' 0或1个参数
'*' 0或所有参数
'+' 所有,并且至少一个参数

--toy:为参数名称
-t:为参数别称
action='store_true':参数是否使用,如果使用则为True,否则为False

parser.add_argument('--toy','-t',action='store_true',help='Use only 50K samples of data')

那么在py文件中如何调用呢?       parser.parse_args()

#命令行输入参数处理
parser = argparse.ArgumentParser() parser.add_argument('file') #输入文件
parser.add_argument('-o', '--output') #输出文件
parser.add_argument('--width', type = int, default = 80) #输出宽
parser.add_argument('--height', type = int, default = 80) #输出高 #获取参数
args = parser.parse_args() IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output

python命令行工具的使用——argparse的更多相关文章

  1. Python 命令行工具 argparse 模块使用详解

    先来介绍一把最基本的用法 import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() ...

  2. Python 命令行之旅 —— 初探 argparse

    『讲解开源项目系列』启动--让对开源项目感兴趣的人不再畏惧.让开源项目的发起者不再孤单.跟着我们的文章,你会发现编程的乐趣.使用和发现参与开源项目如此简单.欢迎联系我们给我们投稿,让更多人爱上开源.贡 ...

  3. Python 命令行之旅 —— 深入 argparse (一)

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  4. 让你如绅士般基于描述编写 Python 命令行工具的开源项目:docopt

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  5. python命令行参数解析模块argparse和docopt

    http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...

  6. Python命令行参数解析模块argparse

    当写一个Python脚本时经常会遇到不同参数不同功能的情况,如何做一个更好看的命令帮助信息以及对命令参数解析呢? 这就需要使用argparse模块 #!/usr/bin/env python # -* ...

  7. 让你如“老”绅士般编写 Python 命令行工具的开源项目:docopt

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  8. python 命令行工具 fire

    简介 A library for automatically generating command line interfaces. Python Fire is a library for auto ...

  9. Python 命令行解析工具 Argparse介绍

    最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具. 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间去研究界面问题 ...

随机推荐

  1. 【学习笔记】Linux基础(一):磁盘分区与Linux的安装(以CentOS为例)

    一.磁盘分区与Linux的安装(以CentOS为例) 0.说在安装之前 在Linux中,"一切设备皆文件",设备在/dev这个目录下 /dev/sd[a-p] 表示SCSI/SAT ...

  2. win10下Java12环境变量设置

    jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 变量设置: 右键"我的电脑" ...

  3. linux --- 杀掉特定端口进程与启用SSH服务

    Linux下端口被占用解决 有时候关闭软件后,后台进程死掉,导致端口被占用.下面以JBoss端口8083被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln ne ...

  4. 从数组中找到topK的元素(序号)

    问题: 在n个数中找出最大的k个数. 多次求min()或求max() 最简单的方法是对大小为k的数组进行n次求min计算(或者对大小为n的数组进行k次求max计算)最后能够找出最大k个数.复杂度是O( ...

  5. HDU_4403

    http://acm.hdu.edu.cn/showproblem.php?pid=4403 数值不大,暴力枚举,枚举每一种划分,然后枚举每一种等号位置. #include<iostream&g ...

  6. Spring IOC容器源码分析

    注:本文转自https://javadoop.com/post/spring-ioc Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容 ...

  7. Linux学习1-云服务器上搭建禅道项目管理工具

    前言 相信各位测试的小伙伴出去面试总会被问到:测试环境怎么搭建?一个中级测试工程师还是对测试环境一无所知的话,面试官会一脸鄙视的,今天我给大家介绍一下最简单的环境部署-—如何在云服务器部署禅道环境. ...

  8. One Stage目标检测

    在计算机视觉中,目标检测是一个难题.在大型项目中,首先需要先进行目标检测,得到对应类别和坐标后,才进行之后的各种分析.如人脸识别,通常是首先人脸检测,得到人脸的目标框,再对此目标框进行人脸识别.如果该 ...

  9. 博客圆美化主题推荐之Slience

    博客圆美化主题推荐之Slience 一.前言 本博客美化主题作者为:Esofar,本文仅在教导如何快速把该美化主题应用到自己的博客中,详细部署内容见Silence - 专注于阅读的博客园主题. 二.博 ...

  10. golang的timer一些坑

    本文代码部分基于dive-to-gosync-workshop的代码 Golang 的NewTimer方法调用后,生成的timer会放入最小堆,一个后台goroutine会扫描这个堆,将到时的time ...