zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Pythongetopt模块处理命令行选项实例

实例命令行模块 处理 选项
2023-06-13 09:15:26 时间

getopt模块用于抽出命令行选项和参数,也就是sys.argv
命令行选项使得程序的参数更加灵活。支持短选项模式和长选项模式
例如 pythonscriptname.py-f"hello"--directory-prefix=/home-t--format"a""b"

复制代码代码如下:

importgetopt,sys
shortargs="f:t"
longargs=["directory-prefix=","format"]
opts,args=getopt.getopt(sys.argv[1:],shortargs,longargs)

getopt.getopt([命令行参数列表],"短选项",[长选项列表])

短选项名后的冒号:表示该选项必须有附加的参数
长选项名后的等号=表示该选项必须有附加的参数

返回opts和args
opts是一个参数选项及其value的元组(("-f","hello"),("-t",""),("--format",""),("--directory-prefix","/home"))
args是一个除去有用参数外其他的命令行输入("a","b")  

复制代码代码如下:

#然后遍历opts便可以获取所有的命令行选项及其对应参数了
foropt,valinopts:
   ifoptin("-f","--format"):
       pass
   if....

使用字典接受命令行的输入,然后再传送字典,可以使得命令行参数的接口更加健壮

#两个来自python2.5Documentation的例子

复制代码代码如下:
>>>importgetopt,sys
>>>arg="-a-b-cfoo-dbara1a2"
>>>optlist,args=getopt.getopt(sys.argv[1:],"abc:d:")
>>>optlist
[("-a",""),("-b",""),("-c","foo"),("-d","bar")]
>>>args
["a1","a2"]

>>>arg="--condition=foo--testing--output-fileabc.def-xa1a2"
>>>optlist,args=getopt.getopt(sys.argv[1:],"x",["condition=","output-file=","testing"])
>>>optlist
[("--condition","foo"),("--testing",""),("--output-file","abc.def"),("-x","")]
>>>args
["a1","a2"]