在某种功能被大量使用的时候,我们应该考虑写一个脚本封装好,以便重复调用。但如果频繁的修改某几个参数会十分麻烦,那么读取命令行参数作为脚本运行的参数,是很重要的。
Python中读取命令行参数只需要使用sys.argv
即可。
python main.py -t Testing
这样一条命令,sys.argv
的值为["main.py", "-t", "Testing"]
。
事实上,sys.argv[0]
的值始终是调用的脚本名。所以我们解析命令行参数只需要解析sys.argv[1:]
即可。
getopt模块
这是一个十分简单易上手的Python标准库模块。只需要类似于如下的一行代码就可以解析命令行参数,而不用我们手动匹配。
opts, args = getopt.getopt(sys.argv[1:], "ht:a", ["help", "Test="])
如上代码,指定了如果有-t
或者--Test
参数,它们应该带有值。指定方式就是:
和=
也指定了如果有-h
,-a
,--help
参数,它们不应该带有值。
getopt.getopt()
函数的返回值分两个:
- 返回的是类似于
[("-t", "value"), ("h", "")]
的列表。其中包含参数与值的二元组,如果该参数不带值,则第二项为空。 - 返回的是没有匹配到的参数。譬如上面的代码解析这条命令
python main.py -t test fuck
,args的值就是["fuck",]
。
解析完之后,怎么用,就看自己发挥了。
有一个使用命令行参数批量修改文件名或后缀名的脚本在我的Github。