python 解析命令行选项

问题:

  • 程序如何能够解析命令行选项

解决方案

  • argparse 模块可被用来解析命令行选项

argparse 模块

argparse 模块是标准库中最大的模块之一,拥有大量的配置选项

dest 参数指定解析结果被指派给属性的名字

metavar 参数被用来生成帮助信息

action 参数指定跟属性对应的处理逻辑, 通常的值为 store ,将其存储为字符串,action=‘append‘  用来存储某个值或将多个参数值收集到一个列表中

一旦参数选项被指定,你就可以执行 parser.parse() 方法了。 它会处理 sys.argv 的值并返回一个结果实例。 每个参数值会被设置成该实例中 add_argument() 方法的 dest 参数指定的属性值。

nargs 作用: 把参数放到一个列表中

import argparse
parser = argparse.ArgumentParser(description=‘Search some files‘)

parser.add_argument(dest=‘filenames‘,metavar=‘filename‘, nargs=‘*‘)
args = parser.parse_args()
print(args.filenames)

 

执行脚本

python test_nargs.py t.txt t1.txt t2.txt

action=‘store_true‘ 根据参数是否存在来设置一个 Boolean 标志

import argparse
parser = argparse.ArgumentParser(description=‘Search some files‘)
parser.add_argument(‘-v‘, dest=‘verbose‘, action=‘store_true‘,
                    help=‘verbose mode‘)
args = parser.parse_args()
print(args.verbose)

执行脚本

action=‘store‘  接受一个单独值并将其存储为一个字符串

import argparse
parser = argparse.ArgumentParser(description=‘Search some files‘)
parser.add_argument(‘-o‘, dest=‘outfile‘, action=‘store‘,
                    help=‘output file‘)
args = parser.parse_args()
print(args.outfile)

执行脚本

action=‘append‘  把接受到的值追加到列表中  

import argparse
parser = argparse.ArgumentParser(description=‘Search some files‘)
parser.add_argument(‘-o‘,‘--pat‘, dest=‘outfile‘, action=‘append‘,
                    help=‘output file‘)
args = parser.parse_args()
print(args.outfile)

执行脚本  

python test_nargs.py -o hello --pat hello1

choices={‘slow‘,‘fast‘}, default=‘slow‘  参数说明接受一个值,但是会将其和可能的选择值做比较,以检测其合法性

import argparse
parser = argparse.ArgumentParser(description=‘Search some files‘)
parser.add_argument(‘--speed‘, dest=‘speed‘, action=‘store‘,
                    choices={‘slow‘,‘fast‘}, default=‘slow‘,
                    help=‘search speed‘)
args = parser.parse_args()
print(args.speed)  

执行脚本 

 

 

原文地址:https://www.cnblogs.com/crazymagic/p/11328266.html

时间: 2024-10-07 05:59:55

python 解析命令行选项的相关文章

python 解析命令行

原文 http://python.jobbole.com/87014 python解析命令行 2016/12/13 · 基础知识 · 命令行 分享到:0 原文出处: 顾慎为 getopt:和C中的getopt()等价.optparse:2.7后已不推荐使用.argparse:基于optparse的新库.docopt:根据文档描述,自动生成.另一份参考文档:docopt. 更详细的内容可参考上述文档. getopt 若对C的getopt()函数不熟悉,或者倾向于使用较少的代码,或者需要对帮助信息和

python解析命令行

可以解析这样的命令 ./cron_ctrl jobname1 --stop ;./cron_ctrl jobname1 --start;./cron_ctrl jobname1 --list #!/usr/bin/env python import os import sys from optparse import OptionParser def cronOptionParser(): name=sys.argv[1] #print name parser = OptionParser()

python之命令行解析工具argparse

以前写python的时候都会自己在文件开头写一个usgae函数,用来加上各种注释,给用这个脚本的人提供帮助文档. 今天才知道原来python已经有一个自带的命令行解析工具argparse,用了一下,效果还不错. argparse的官方文档请看 https://docs.python.org/2/howto/argparse.html#id1 from argparse import ArgumentParser p = ArgumentParser(usage='it is usage tip'

使用getopts命令解析shell脚本的命令行选项

转自:http://yejinxin.github.io/parse-shell-options-with-getopts-command/ 标准的Unix命令一般都提供很多选项,使用者通过命令行提供具体的选项和参数,格式如下: command -options parameters filename getopts是shell内建的一个命令,它可以帮助我们处理命令行选项,使得我们的脚本也可以与unix命令保持风格一致.getopts的用法格式为: getopts option_string v

Python 的命令行参数处理 optparse->argparse

optaprse自2.7版开始弃用:弃用optparse模块,不会进一步开发,将继续开发argparse模块作为替代. 但是用习惯了optparse,还是很好用的撒. optparse使用起来,相比旧的getopt模块,更方便.灵活而且解析命令行选项的库功能强大. optparse使用声明样式的命令行解析:你创建一个OptionParser实例,填充选项,并解析命令行. optparse允许用户使用在传统GNU / POSIX语法的选项,而且会生成的使用和帮助信息(就是你没有显式的定义-h/--

Python处理命令行参数

1. 将命令行参数保存在列表中,注意argv[0]是程序本身的名字: import sys print(sys.argv) print(sys.argv[1]) python argv.py localhost 3306['argv.py', 'localhost', '3306']localhost 2. 使用sys.stdin和fileinput读取标准输入,并打印在终端类似shell中的管道 import sys for line in sys.stdin: print(line,end=

3.QT中QCommandLineParser和QCommandLineOption解析命令行参数

 1  新建项目 main.cpp #include <QCoreApplication> #include <QCommandLineParser> #include <QDebug> #include <stdio.h> int main(int argc, char** argv) { QCoreApplication app(argc, argv); app.setApplicationVersion("1.0.0.0");

shell解析命令行的过程以及eval命令

本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e "some files:" ~/i* "\nThe date:$(date +%F)\n$name's age is $((a+4))" >/tmp/a.log 假设在执行该命令前,已赋值变量"name=longshuai"和"a=

make的命令行选项

make的命令行选项 -b -m 忽略,提供其它版本make兼容性. -B --always-make 强制重建所有规则的目标,不根据规则的依赖描述决定是否重建目标文件. -C DIR --directory=DIR 在读取Makefile之前,进入目录“DIR”,就是切换工作目录到“DIR”之后执行make.存在多个“-C”选项时,make的最终工作目录是第一个目录的相对路径.如:“make –C / -C etc”等价于“make –C /etc”.一般此选项被用在递归地make调用中. -