gpt4 book ai didi

python获取命令行输入参数列表的实例代码

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python获取命令行输入参数列表的实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

(一)单一独立的参数 。

如果命令行输入的参数都是各自单一独立的,直接用个循环把所有参数逐一读出来就行了。sys模块里面直接用args = sys.argv就可以获取到所有参数了(返回值args是一个list),args0]是执行的python文件路径名,args[1:]后面的才是真正命令行输入的参数,用个for循环就可以一一读取args列表,示例代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
 
def usage():
     print """
This is usage.
This is usage.
This is usage.
"""
 
def main(argv):
     for arg in argv[ 1 :]:
         if arg = = '-t' :
             pass
         elif arg = = '-h' or arg = = '--help' :
             usage()
             sys.exit()
         elif arg = = '-p' :
             pass
         else :
             print "Error: invalid parameters"
             sys.exit()
 
if __name__ = = '__main__' :
     main(sys.argv)

(二)参数结合 。

如果要读取:-t mytest 这样的组合参数,上面的方法就行不通了,在shell里面有shift可以直接移到下一个参数,但在python没有shift的功能,所以得换种方式.

一种方法是用getopt模块(官方文档关于getopt的解释:点击打开链接):getopt模块里面的getopt函数可以指定参数可能的类型并且获取所有参数.

用法:

?
1
getopt.getopt(args, options[, long_options])

options参数指定短式输入,也就是单横杠"-",例如"-h",long_options是可选的,用于指定长式输入,也就是双横杠"--",例如"--help"。如果是单一参数输入,options和long_options都只需要直接写参数名,例如下面这句代码指定两个单一参数:-h/--help -t/--test:

?
1
opts, args = getopt.getopt(sys.argv[ 1 :], 'ht' , [ 'help' , 'test' '])

如果是后面还要继续接参数的,options要在参数名后面加冒号":",long_options要在参数名后面加等号"=",例如下面这句代码指定三个参数:-h/--help -t/--test -r path / --root path:

?
1
opts, args = getopt.getopt(sys.argv[ 1 :], 'htr:' , [ 'help' , 'test' , 'root=' ])

getopt函数的返回值有两个,一般只用第一个,如下面的代码,第一个返回值opts :" is a list of (option, value) pairs",也就是一个 -t mytest 这样的元素对,当然如果-t后面不需要再接参数的话,那就没有value值了。利用这个pairs返回值,我们可以用个for循环获取参数,不管是单一独立的参数,还是结合的参数,都可以,示例代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
import getopt
 
def usage():
     print """
This is usage.
This is usage.
This is usage.
"""
 
def main(argv):
     try :
         opts, args = getopt.getopt(sys.argv[ 1 :], 'm:p:h' , [ 'miner=' , 'params=' , 'help' ])
     except getopt.GetoptError:
         usage()
         sys.exit()
    
     for opt, arg in opts:
         if opt in [ '-h' , '--help' ]:
             pass
         elif opt in [ '-t' , '--test' ]:
             pass
         elif opt in [ '-p' , '--path' ]:
             param = arg
             print param
             sys.exit()
         else :
             print "Error: invalid parameters"
             usage()
             sys.exit()
 
if __name__ = = '__main__' :
     main(sys.argv)

另外,还有个知识点就是,如果想要print一大段string怎么办,用三个双引号包住即可,如上面的代码中usage函数,并且要注意的是三双引号里面的内容不用缩进,直接从最开头开始写,否则会导致出错.

以上这篇python获取命令行输入参数列表的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/Lv_Victor/article/details/70699497 。

最后此篇关于python获取命令行输入参数列表的实例代码的文章就讲到这里了,如果你想了解更多关于python获取命令行输入参数列表的实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com