argparse是python的一个命令行参数模块,可以解析命令行参数,生成帮助等。

你可以这样使用它:

  1. #!/usr/bin/python
  2. from argparse import ArgumentParser
  3. p = ArgumentParser(usage='it is usage tip', description='this is a test')
  4. p.add_argument('--one', default=1, type=int, help='the first argument')
  5. p.add_argument('--two, default=2, type=int, help='the second argument')
  6. p.add_argument('--docs-dir, default="./", help='document directory')
  7. args = p.parse_args()
  8. #可以打印出来查看
  9. print args
  10. #打印某一个参数
  11. print args.one
  12. print args.docs_dir   #经过parse_args()函数后参数名称去掉了前面的"--",所有的"-"转换为"_"

这个文件的名称叫做test.py , 你可以这样运行它:

./test.py

想要查看是否有哪些参数可以:

./test.py --help  或者  ./test.py -h

会打印出以下信息:

  1. usage: it is usage tip
  2. this is a test
  3. optional arguments:
  4. -h, --help  show this help message and exit
  5. --one ONE   the first argument
  6. --two TWO   the second argument
  7. --docs-dir DOCS_DIR   document directory

然后就可以带参数运行程序:

./test.py --one 10 --two 20 --docs-dir /opt/docs/

但是在这种情况下:“如果运行程序时带了一个不认识的参数”,就会报错:

./test.py --p 235

  1. usage: it is usage tip
  2. test.py: error: unrecognized arguments: ./test.py --p 235

有时我们不希望这样,我们的需求是:只提取有用的参数,不认识的参数丢弃但并不需要报错".

这时程序可以这样写:

  1. #!/usr/bin/python
  2. import sys
  3. from argparse import ArgumentParser
  4. p = ArgumentParser(usage='it is usage tip', description='this is a test')
  5. p.add_argument('--one', default=1, type=int, help='the first argument')
  6. p.add_argument('--two, default=2, type=int, help='the second argument')
  7. p.add_argument('--docs-dir, default="./", help='document directory')
  8. # 这个函数将认识的和不认识的参数分开放进2个变量中
  9. args, remaining = p.parse_known_args(sys.argv)
  10. #可以打印出来查看
  11. print args
  12. print remaining

再次运行程序:

./test.py --p 235

这个时候就会打印出:

  1. Namespace(docs_dir='./', one=1, two=2)
  2. ['./test.py', '--p', '235']

argparse 命令含参数模块的更多相关文章

  1. Argparse 命令行解析模块常用参数

    Argparse模块可以轻松编写用户友好的命令行界面.该程序定义了它需要的参数,argparse 并将找出如何解析这些参数sys.argv.该argparse 模块还会自动生成帮助和用法消息,并在用户 ...

  2. python argparse命令行参数

    测试: 第一个没有任何输出和出错 第二个测试为打印帮助信息,argparse会自动生成帮助文档 第三个测试为未定义的-v参数,会出错 第四个测试为未定义的参数foo,出错 positional arg ...

  3. tensorflow命令行参数:tf.app.flags.DEFINE_string、tf.app.flags.DEFINE_integer、tf.app.flags.DEFINE_boolean

    tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考:python中处理命令行参数的模块optpars)做 ...

  4. Python 中命令行参数解析工具 docopt 安装和应用

    什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制. ...

  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. $命令行参数解析模块argparse的用法

    argparse是python内置的命令行参数解析模块,可以用来为程序配置功能丰富的命令行参数,方便使用,本文总结一下其基本用法. 测试脚本 把以下脚本存在argtest.py文件中: # codin ...

  8. python 命令行参数——argparse模块的使用

    以下内容主要来自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse ...

  9. argparse解析参数模块

    一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数,例如python parseTes ...

随机推荐

  1. Viewpager以及ViewPagerIndicator的相关使用

    ViewPagerIndicator开源框架可以用来在ViewPager上方做标题,可以在ViewPager下方做跟随移动的小圆点,这个类库必须和自己的项目在电脑的同一磁盘盘符下,比如都在D盘或者E盘 ...

  2. java工程开发之图形化界面之(第一课)

    下面我们先上代码: package 一个事例图形小应用程序; import javax.swing.JApplet; import java.awt.Graphics; public class 绘制 ...

  3. HDU 1204 基础DP 非连续字段的最大和

    其实这个感觉是一眼题,只不过我真心太菜了. 题目已经告诉你了,有m段,n个数字,那么我们就只需要dp[m][n]即可,然后最后的答案肯定是dp[m][]的那一行,所以其他行都是没有用的,因为我们可以把 ...

  4. mob分享

    QQ分享时候 QQ和QQ控件的appid   是一样的  都是在QQ开发者那里申请 powered by ShareSDK怎么去掉? android:参考sdk说明文档,继承一个AuthorizeAd ...

  5. Processes and Threads (转)

    http://www.cnblogs.com/xitang/archive/2011/09/24/2189460.html 原文 http://developer.android.com/guide/ ...

  6. call_grant_exec.sql

    set echo off feedback off verify off pagesize 0 linesize 120 define v_grantee                 = & ...

  7. 【简单dp】 poj 2346

    题意:给定一个N 求一共有多少个N位数     前N/2个数的和等于后N/2个数的和思路:令F[i][j] 为sum值为j的i位数的个数则问题转化成 求 sum(F[n/2][j] * F[n/2][ ...

  8. 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告

    题目很简单就拿着这道题简单说说 有向图强连通分支的Tarjan算法 有向图强连通分支的Tarjan算法伪代码如下:void Tarjan(u) {dfn[u]=low[u]=++index//进行DF ...

  9. Ubuntu下安装Hudson

    因为hudson需要依赖java等,手动安装比较费劲 官方给出了一种很简单的解决方案:http://wiki.eclipse.org/Hudson-ci/Installing_Hudson_DEB 1 ...

  10. Unexpected exception 'Cannot run program ... error=2, No such file or directory' ... adb'

    Eclipse ADT Unexpected exception 'Cannot run program' up vote 8 down vote favorite 4 I have installe ...