优草派  >   Python

Python如何解析命令行?优雅地解析命令行的方法有哪些?

翟嘉慧            来源:优草派

随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。Python如何解析命令行?优雅地解析命令行的方法有哪些?本文将通过两种方法给大家做出解答,需要的可以参考一下。

Python如何解析命令行?优雅地解析命令行的方法有哪些?

在学习python的时候,我们会经常自己写很多程序,在对命令行慢慢熟悉之后,都会想让高效的对命令行进行操作,使得开发效率得到提高,那么我们这样做需要才不像听起来那么麻烦呢,请看下面的两种方法。

1、手动解析

手动解析需要用到命令行参数,之前我们在对模块的学习时,提到过sys.args这个变量,它就是用来对一个脚本进行调用且传入命令行的一个参数,举个例子看看它的使用过程:

#HH.py
import sys
print(sys.argv)

对它进行调用

$ python test_sys.py -d today -t now --author justdopython --country China --auto

获得的结果:

['HH.py''-d''today''-t''now''--author''justdopython''--country''China''--auto']

从调用结果我们可以了解到,这个变量它可以让我们的命令行参数使用空格进行切分,会得到一个字符串列表,而它的第一个参数就是我们的我们运行的脚本文件。

2、getopt模块

python中存在各种功能有些是别人已经写好的模块,直接就可以 拿来使用的,比如在对命令行参数解析的时候就可以使用到getopt模块,它能帮助我们很好的区分长短命令行参数,还可以对命令行参数的值进行提取。举个例子:

#HH.py
import sys
import getopt
opts, args = getopt.getopt(sys.argv[1:], 'd:t:', ["author=""country=""auto"])
print(opts)
print(args)

打印结果:

$ python test_getopt.py -d today -t now --author justdopython --country China --auto
[('-d''today'), ('-t''now'), ('--author''justdopython'), ('--country''China'), ('--auto''')]
[]

通过以上案例,我们知道在getopt模块中的getopt函数它是用来对一个命令行参数进行解析的。这个函数它可以接受三个参数:args,shortopts和longopts,分别代表“命令行参数”,“要接收的短选项”和“要接收的长选项”。其中args和longopts均为字符串组成的列表,而shortopts则为一个字符串。

本文讲解了Python如何解析命令行?优雅地解析命令行的方法有哪些?一共讲解了两种方法,一种是略显笨重的手动解析,即自己编写程序自定义解析;另一种则是调用现成、且更加健壮的getopt模块来完成解析。希望对大家的学习有所帮助!

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行