首页 > 其他 > 详细

命令行参数

时间:2020-07-05 20:07:54      阅读:39      评论:0      收藏:0      [点我收藏+]

命令行参数

命令行工具的使用能够大大简化代码脚本的维护成本,提升复用性,本文借助于python提供的主流参数解析工具来实现简单功能

 

Python的环境变量配置,找到python.exe的文件夹配入path中即可

四种命令行处理方式:

sys
getopt
optparse
argparse

 

1. sys命令行参数

sys模块主要用于获取和Python解释器相关的信息

sys.argv主要用来获得本身和其中的参数

 

import sys
?
#执行
def start(argv):
    print(程序名,argv[0])
?
if __name__ == __main__:
    try:
        start(sys.argv[0:])
    #用户中断执行(通常是输入^C)
    except KeyboardInterrupt:
        print(interrupted by user)
        
》》》程序名 sys Part.py

 

技术分享图片

 

 

2. getopt命令行参数

getopt是对sys.argv获取的命令行参数进行二次处理。

调用getopt.getopt()函数会返回两个列表——opts/args

  • opts:选项,或称选项值的元组作为一个元素列表(u:/p)当短格式选项(-)选项带了“:”则必带选项值,([”help“,"file="]),中括号内是长格式选项(--),其中“=与:”同作用

  • args:存放没用选项单参数的列表。不属于格式信息的剩余的命令行参数;

示例:

import sys,getopt
?
opts,args = getopt.getopt(sys.argv[1:], "u:p:" ,["file="])
print(opts的值是,opts)
print(args的值是,args)

 

输出:

(venv) λ python getOpt.py -u Anu -p toor --file="flag.txt" extravalue
opts的值是 [(-u, Anu), (-p, toor), (--file, flag.txt)]
args的值是 [extravalue]
 

sys.argv[0:]所取参数从程序本身开始:

(venv) λ python getOpt.py -u Anu -p toor --file="flag.txt" extravalue
opts的值是 []
args的值是 [getOpt.py, -u, Anu, -p, toor, --file=flag.txt, extravalue]
 

3. optparse

已被弃用

optparse模块主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数,与getopt函数不同的是optparse可以自动生成帮助信息。

 

4. argparse

argparse --- 命令行选项、参数和子命令解析器

argparse是基于optparse的,作用是给这个程序,添加可选参数以实现不同的功能。

ArgumentParser.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() 所返回对象上的属性名。

详见 https://docs.python.org/zh-cn/3.7/library/argparse.html#module-argparse

4.1 简单的参数说明/及变量调用

示例:

paser.add_argument("-u" , "--user" , dest="User" , type=str , default="root" , help="Target User")

 

简单的说明:

 parser.add_argument("可选参数",dest="可用于调用的变量名",type=str,help="说明")用于添加参数

 

简单的调用:

如dest="User",可如此调用paser.parse_args().User

 

 

 

4.2 argparse的实例运用

  • 一个简单到啥都做不了的例子。其默认会有一个-h/--help的输出

输入

import argparse
?
paser = argparse.ArgumentParser()
paser.parse_args()
 

输出:

(venv) λ python argParse.py -h
usage: argParse.py [-h]
?
optional arguments:
  -h, --help  show this help message and exit
 
  • 一个可以用的例子:

paser = argparse.ArgumentParser()
    paser.add_argument(--version, -v, action=version, version=%(prog)s 1.0) #显示当前版本
?
    paser.add_argument("-u" , "--user" , dest="User" , type=str , default="root" , help="Target User")                       #type
    paser.add_argument(-s , --sex , dest=Sex , type=str ,choices=[, ] , default=man , help="Target Sex")      #choices

 

输出:

usage: argParse.py [-h] [--version] [-u USER] [-s {男,女}]
?
optional arguments:
  -h, --help            show this help message and exit
  --version, -v         Display version information
  -u USER, --user USER  Target User
  -s {男,女}, --sex {男,女}  Target Sex
?

 

 

命令行参数

原文:https://www.cnblogs.com/po1i/p/13249260.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!