Python的环境变量配置,找到python.exe
的文件夹配入path中即可
四种命令行处理方式:
sys
getopt
optparse
argparse
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
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‘]
已被弃用
optparse模块主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数,与getopt函数不同的是optparse可以自动生成帮助信息。
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
示例:
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
一个简单到啥都做不了的例子。其默认会有一个-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