首先是sys这个模块的argv。废话不多说直接看案例:(顺便说一句文件名一定不要用导入的模块名,下面是一个惨痛的教训)
我们可以看到,sys.argv获取的是命令行输入的程序名以及后面输入的字符串,并返回一个列表。
这个了解我们来看getopt这个函数,它用来匹配从sys.argv中获取的字符串列表,支持两种类型(短类型和长类型),例:-h,--help,类似于这种。返回两个列表,分别是opt和arg,第二个列表也就是arg是getopt不匹配的参数,例(filename)。
接下来看一个例子吧
先看getopt.getopt,它的第一个参数就是要处理的字符串,也就是我们的sys.argv[1:],第二个参数就是短字符串,ho:等于-h 无参数,-o 有参数,字母后面加上:相当于这个选项有参数。看执行结果的第二个列表前两个元组就明白了。
再看第三个参数,也就是长字符串,其中等号跟:作用相同。
这样我们就可以根据处理的结果,获取参数和其对应的值了。
arg就是与其不匹配的,既不是-开头也不是--开头的。