Python:使用命令行参数

在某种功能被大量使用的时候,我们应该考虑写一个脚本封装好,以便重复调用。但如果频繁的修改某几个参数会十分麻烦,那么读取命令行参数作为脚本运行的参数,是很重要的。

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()函数的返回值分两个:

  1. 返回的是类似于[("-t", "value"), ("h", "")]的列表。其中包含参数与值的二元组,如果该参数不带值,则第二项为空。
  2. 返回的是没有匹配到的参数。譬如上面的代码解析这条命令python main.py -t test fuck,args的值就是["fuck",]

解析完之后,怎么用,就看自己发挥了。

有一个使用命令行参数批量修改文件名或后缀名的脚本在我的Github。

你可能感兴趣的:(Python:使用命令行参数)