python命令行参数是什么-Python教程

资源魔 34 0

python饬令行参数是甚么?上面给各人详细引见一下甚么是饬令行参数:

sys.argv

Python 中也能够所用 sys 的 sys.argv 来猎取饬令行参数:

sys.argv 是饬令行参数列表。

len(sys.argv) 是饬令行参数个数。

sys.argv[0]是剧本文件的名字,如:test.py

sys.argv[1:]是以空格宰割的参数列表

getopt

函数原型:

getopt(args, shortopts, longopts = [])

参数:
args:需求解析的参数,普通是sys.argv[1:]
shortopts:短格局 (-),有冒号:示意参数前面需求参数值,不冒号示意前面无需参数值
longopts:长格局(--) ,有等号示意参数前面需求参数值,不等号示意前面无需参数值
前往值:
options是个蕴含元祖的列表,每一个元祖是剖析进去的格局信息,比方 [('-i','127.0.0.1'),('-p','80')] ;
args 是个列表,蕴含那些不‘-’或‘--’的参数,比方:['55','66']

相干保举:《Python视频教程》

示例:

import sys
import getopt
try:    
    options,args = getopt.getopt(sys.argv[1:],"hp:i:", ["help","ip=","port="])
except getopt.GetoptError:    
    sys.exit()
for name,value in options:   
    if name in ("-h","--help"):        
        usage()    
    if name in ("-i","--ip"):        
        print 'ip is----',value    
    if name in ("-p","--port"):        
    print 'port is----',value
python test.py -i 127.0.0.1 -p 80 55 66
python test.py --ip=127.0.0.1 --port=80 55 66

“hp:i:”
短格局 --- h 前面不冒号:示意前面没有带参数,p:以及 i:前面有冒号示意前面需求参数
["help","ip=","port="]
长格局 --- help前面不等号=,示意前面没有带参数,其余三个有=,示意前面需求参数
留意:界说饬令行参数时,要先界说带'-'选项的参数,再界说不‘-’的参数

optparse

类OptionParser

class optparse.OptionParser(usage=None, 
                 option_list=None,
                 option_class=Option,
                 version=None,
                 conflict_handler="error",
                 description=None,
                 formatter=None,
                 add_help_option=True,
                 prog=None,
                 epilog=None)

参数:

usage:顺序的应用阐明,此中"%prog"会交换为文件名(或许prog属性,若指定了prog属性值),"[options]"会交换为各个参数的应用阐明
version:版本号

函数add_option()

add_option(short, long, action, type, dest, default, help)

参数:
short option string: 为第一个参数,示意option的缩写,例如-f;
long option string: 为第二个参数,示意option的全拼,例如--file;
action=: 示意对此option的解决形式,默许值为store,示意存储option的值到解析后的options工具的成员中。

action还能够有其余的值:关于bool值,应用store_true来默许存储true,应用store_false来默许存储false,store_const用来存储const设置的值到此option,append示意添加option的参数到list中,此时此option是一个list,可能蕴含多个值,count示意对counter添加一,callback示意挪用指定的函数。一切的action值以下:
store + store_true + store_false + store_const + append + count + callback

type=:示意此option的值的类型,默许为string,能够指定为string, int, choice, float and complex;
dest=:示意此option正在通过optionparser解析后的options工具中成员的名字,默许应用long option string;
help=:示意这个参数的应用阐明;
default=:示意比option的默许值;
metavar=:示意显示到help中option的默许值;
const=:当action为store_const的时分,需求设置此值;
choices=:当设置type为choices时,需求设置此值;

函数parse_args

(options, args) = parser.parse_args()

前往值:
options为是一个directory,它的内容为“参数/值 ”的键值对。
args是一个list,它的内容是一切参数除了去options后,残余的输出内容。

简略用法:

from optparse import OptionParser  
  
parser = OptionParser(usage="usage:%prog [options] arg1 arg2")  
parser.add_option("-t", "--timeout",  
                action = "store",  
                type = 'int',  
                dest = "timeout",  
                default = None,  
                help="Specify annalysis execution time limit"  
                )  
parser.add_option("-u", "--url",  
                action = "store_true",  
                dest = "url",  
                default = False,  
                help = "Specify if the target is an URL"  
                )
(options, args) = parser.parse_args() 
if options.url:  
    print(args[0])

复杂用法:参数分组

parser = optparse.OptionParser(version="%prog " + config.version)# co妹妹on_groupco妹妹on_group = optparse.OptionGroup(
    parser, "Co妹妹on Options",    "Co妹妹on options for code-coverage.")
parser.add_option_group(co妹妹on_group)
co妹妹on_group.add_option(    "-l", "--lang", dest="lang", type="string", default="cpp",    help="module language.", metavar="STRING")
co妹妹on_group.add_option(    "--module_id", dest="module_id", type="int", default=None,    help="module id.", metavar="INT")
cpp_group = optparse.OptionGroup(
    parser, "C/C++ Options",    "Special options for C/C++.")# cpp_groupparser.add_option_group(cpp_group)
cpp_group.add_option(    "--local-compile", action="store_true", dest="local_compile",    help="compile locally, do not use compile cluster.")
cpp_group.add_option(    "--module_path", dest="module_path", type="string", default=None,    help="module path, like app/ecom/nova/se/se-as.", metavar="STRING")
    
options, arguments = parser.parse_args()
lang = options.lang
module_id = options.module_id
local_compile = options.local_compile
module_path = options.local_compile

argparse

类ArgumentParser

class argparse.ArgumentParser(prog=None, 
                usage=None, 
                description=None, 
                epilog=None, 
                parents=[], 
                formatter_class=argparse.HelpFormatter,
                prefix_chars='-', 
                fromfile_prefix_chars=None, 
                argument_default=None, 
                conflict_handler='error', 
                add_help=True)

参数:
prog:顺序的名字(默许:sys.argv[0])
usage:形容顺序用法的字符串(默许:从解析器的参数天生)
description:参数协助信息以前的文本(默许:空)
epilog:参数协助信息之后的文本(默许:空)
parents:ArgumentParser 工具的一个列表,这些工具的参数应该包罗出来
formatter_class:定制化协助信息的类
prefix_chars:可选参数的前缀字符集(默许:‘-‘)
fromfile_prefix_chars:额定的参数应该读取的文件的前缀字符集(默许:None)
argument_default:参数的全局默许值(默许:None)
conflict_handler:处理抵触的可选参数的战略(通常不须要)
add_help:给解析器增加-h/–help 选项(默许:True)

函数add_argument()

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help]
[, metavar][, dest])

参数:
name or flags:选项字符串的名字或许列表,例如foo 或许-f, --foo。
action:正在饬令行遇到该参数时采取的根本举措类型。
nargs:应该读取的饬令行参数数量。
const:某些action以及nargs选项要求的常数值。
default:假如饬令行中不呈现该参数时的默许值。
type:饬令行参数应该被转换成的类型。
choices:参数可容许的值的一个容器。
required:该饬令行选项能否能够省略(只针对可选参数)。
help:参数的冗长形容。
metavar:参数正在协助信息中的名字。
dest:给parse_args()前往的工具要增加的属性称号。

简略用法:

import argparse
parser = argparse.ArgumentParser(description="progrom description")
parser.add_argument('key', help="Redis key where items are stored")
parser.add_argument('--host')
arser.add_argument('--port')
parser.add_argument('--timeout', type=int, default=5)
parser.add_argument('--limit', type=int, default=0)
parser.add_argument('--progress_every', type=int, default=100)
parser.add_argument('-v', '--verbose', action='store_true')
args = parser.parse_args()
key = args.key
host = args.host
port = args.port
timeout = args.timeout
limit = args.limit
progress-every = args.progress_every
verbose = args.verbose

以上就是python饬令行参数是甚么的具体内容,更多请存眷资源魔其它相干文章!

标签: Python python教程 python编程 python使用问题 命令行参数

抱歉,评论功能暂时关闭!