Python命令行参数解析
Python命令行参数解析
Python命令行解析是指读取终端传入的参数
sys.argv属性
这个是sys库立面的一个属性,其用于接收传入程序的命令行参数。它是一个列表。也就是差不多下面这种类型
sqlmap.py -u http://www.baidu.com
那么sys.argv的值就是如下
['sqlmap.py','-u','http://www.baidu.com']
它的第一个参数是文件的路径。多个参数的话需要用空格隔开。一般sys.argv需要配合optparse模块使用。
可以通过以下代码试试,sys.argv的输出
import sys
argsa = sys.argv
print(argsa)
注意需要在终端里面输入
optparse模块
optparse,是一个更够让程序设计人员轻松设计出简单明了、易于使用、符合标准的Unix命令例程式的Python模块。生成使用方法和帮助信息。简单来说它是一个用于处理sys.argv传进来的信息的模块。比如我们经常运行脚本时,会查看帮助信息就用用到--help
,那么这个就是由此模块处理的。
下面通过例子先来初步了解:
from optparse import OptionParser #optparse里面最主要的类就是OptionParser了optParser = OptionParser() #创建一个对象optParser.add_option('-f','--file',action = 'store',type = "string" ,dest = 'filename')optParser.add_option("-v","--vison", action="store_false", dest="verbose",default='hello',help="make lots of noise [default]")
#上面的就是最主要的操作,差不多是定义参数的信息 -v是参数简写 --vsion是全写 两种名字都是同一个东西fakeArgs = ['-f','file.txt','-v','how are you', 'arg1', 'arg2']
#这个fakeArgs是模拟sys.argvoption , args = optParser.parse_args()
#上面这里没有传入任何参数是为了更好的演示op , ar = optParser.parse_args(fakeArgs)
#这里传入了fakeArgs,其操作和上面的是一样的
#这里的op会返回一个类似字典的自定义类型option中的dest变量,而值则是我们自己传进去的print("option : ",option)
print("args : ",args)
print("op : ",op)
print("ar : ",ar)
最后程序输出的结果如下
option : {'filename': None, 'verbose': 'hello'}
args : []
op : {'filename': 'file.txt', 'verbose': False}#这里的verbose之所以是False于action参数有关
ar : ['how are you', 'arg1', 'arg2']
add_option()函数里面参数的具体说明
add_option()参数说明:
action:存储方式,分为三种store、store_false、store_truetype:类型dest:存储的变量default:默认值help:帮助信息
action不同值得说明:
--store 上表示命令行参数的值保存在options对象中。例如上面一段代码,如果我们对optParser.parse_args()函数传入的参数列表中带有‘-f’,那么就会将列表中‘-f’的下一个元素作为其dest的实参filename的值,他们两个参数形成一个字典中的一个元素{filename:file_txt}。相反当我们的参数列表中没有‘-f’这个元素时,那么filename的值就会为空。--store_false fakeArgs 中存在'-v'verbose将会返回False,而不是‘how are you’,也就是说verbose的值与'-v'的后一位无关,只与‘-v’存在不存在有关。--store_ture 这与action="store_false"类似,只有其中有参数'-v'存在,则verbose的值为True,如果'-v'不存在,那么verbose的值为None。
参考于CSDN
默认的一个option -h
除了自定义的,在命令行输入-h
或--help
会自动整合所有选项的help及名称显示出来。如果添加一个usage的字符串也能把usage显示出来,例如:
import sys
from optparse import OptionParserif __name__ == '__main__':args = sys.argv[1:]#读取除文件地址外得参数usage = "This is test!" #使用方法字符串optParser = OptionParser(usage) #创建一个对象 并把usage传进去optParser.add_option('-f','--file',type = "string",dest = 'filename',help="请输入文件路径")optParser.add_option("-u","--url", dest="url",default='http://www.baidu.com',help="请输入目标网址")optParser.add_option("-t","--test", dest="test",action="store_true",help="测试是否存在")#添加规则option , args = optParser.parse_args(args)#开始执行规则pass
最后结果如图所示
完整的一个命令行传参示例
import sys
from optparse import OptionParserif __name__ == '__main__':args = sys.argv[1:]#读取除文件地址外得参数optParser = OptionParser() #创建一个对象optParser.add_option('-f','--file',type = "string",dest = 'filename',help="请输入文件路径")optParser.add_option("-u","--url", dest="url",default='http://www.baidu.com',help="请输入目标网址")optParser.add_option("-t","--test", dest="test",action="store_true",help="测试是否存在",default='False')#添加规则option , args = optParser.parse_args(args)#开始执行规则print("-f传入了参数",option.filename) #注意option不是字典print("-u传入了参数",option.url)print("-t的状态为",option.test)print("args多余的东西有",args)pass
测试的命令行
python test.py -f "/flag" -t "hi" abcsdsd
输出结果:
-f传入了参数 /flag
-u传入了参数 http://www.baidu.com
-t的状态为 True
args多余的东西有 ['hi', 'abcsdsd']
Python命令行参数解析相关推荐
- python命令行参数解析OptionParser类用法实例
python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from opt ...
- Python命令行参数解析模块getopt使用实例
这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...
- Python命令行参数解析模块------argparse
首先,argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广 ...
- argparse模块_Argparse:一个具体案例教会你python命令行参数解析
问题描述: 现有一个用于数据格式转换的py脚本(多转一),执行时通过命令行传入一系列的参数控制其具体运行方式,使满足以下要求: 1. 必须传入需要处理的原始数据文件名 2. 可以指定输入文件的格式,若 ...
- python 命令行参数-Python 命令行参数解析
Python用于编写脚本的场景非常多,如何处理脚本(命令行)的参数当然非常关键 首先导入sys,参数列表在sys.arg中 import sys if __name__ == '__main__': ...
- python getopt使用_Python命令行参数解析模块getopt使用实例
这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...
- Python中最好用的命令行参数解析工具
Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...
- python 命令行参数-Python 中最好用的命令行参数解析工具
Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要一个命令行参数解析的 ...
- python 参数_python脚本命令行参数解析
前言 在python命令行参数的解析模块中,我们常用的就是sys内置模块,但该模块的功能过于原始单一,很多具体的逻辑功能还得靠我们自己手动实现,实在较为麻烦.在这里向大家推荐一个好用的参数解析的模块a ...
最新文章
- 同步服务老是报错_SQL2005的维护计划做异地备份,采用另一台服务器设置共享文件夹的方式同步。但是一直报错,本地备份可以...
- 程序员必备的七大面向对象设计原则(三)
- VS2008和VS2012怎么进行Debug模式和Release模式的切换
- 《R语言编程艺术》——2.5 使用all()和any()
- 使用VMware进行基于Ubuntu16.04LTS的Spark集群搭建
- 高性能mysql 第六章_第六章 查询性能优化
- 前端学习(1159):对象结构02
- python数值计算速度_提高python数值计算速度
- 0130 - 构建业务的能力
- 中国现代远程与继续教育网 统考 大学英语(B)考试大纲
- MySQL error(2006) server has gone away
- html返回顶部函数,网页中返回顶部代码(多种方法)另附注释说明
- java实现pdf转图片
- DDR的ZQ校准信号-翻译
- OPNET入门2-Basic Process
- HyperLynx(十二)BoardSim和PCB板级仿真分析(三)
- 知乎上的48条神回复
- arcgis 栅格计算器(Spatial Analyst/Raster Calculator)
- Cisco IP Phone 7960/7940 SCCP firmware 转换成SIP firmware过程
- java性能优化总结_35 个 Java 代码性能优化总结(一)
热门文章
- reflow repaint
- iOS与导航栏有关的神技
- 普歌-码灵团队-java中的equals方法和toString方法及总结
- debian虚拟机调分辨率
- 假期怎么玩,知道这几样轻松玩遍各地
- OpenCV中flip函数实现
- SSD网桥实现wifi,network扩展功能
- 计算机主机缩写,“HIC”是“Host Interface Computer”的缩写,意思是“主机接口计算机”...
- 一文解决IDEA中文乱码问题
- 深入分析微信小程序带来的机遇