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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对CLI程序来说,参数解析大概是一个首要的问题。 当然,也有例外。 无参数脚本 许多常用命令,不需要输入参数,就可...
    匿蟒阅读 13,435评论 1 5
  • 我们在写一个可变性比较大的脚本时候,很多情况下我们需要传入很多个不同的参数,就像我们在终端输入pip --help...
    迷路的南南见鸟阅读 5,822评论 0 0
  • getopt:和C中的getopt()等价。optparse:2.7后已不推荐使用。argparse:基于optp...
    顾慎为阅读 12,791评论 1 10
  • 基础语法,后附福利。 嘻嘻,刚开始学Python,还是小白一只。如果我的文章有幸被大神看到,请批评指正哦。感谢!!...
    turbotx阅读 3,644评论 0 2
  • 之前一直在写关于python的项目,大部分工具都想运行在命令行下面怎么办呢?自行谷歌了一下,看到有一个getopt...
    吃鸡蛋的肉阅读 41,678评论 7 46