当然,在之前的系列中,我已介绍如何给 Python 脚本传参,当然,今天不会继续介绍这么无聊的东东。首先使用 python 的sys.argv 传参的话,就固定了参数的个数、顺序以及格式,这么死的规定如何性感?
I have a dream , to make my code much sexer ! 今天我们简单介绍一下如何更加随性的给 python 脚本传参。效果如下:
long@zhouyl:/tmp$ python arg.py -h
NAME:
project with user set arguments
SYNOPSIS:
[python] arg.py [OPTION]...
DESCRIPTION:
-h, --Help Print this help (work alone, won't work while be mixed with other argu)
-a, --testa a value
-b, --testb b value
AUTHOR:
Zhou Yunlong
long@zhouyl:/tmp$ python arg.py -a 1 -b=2
Argument a values: 1
Argument b values: 2
long@zhouyl:/tmp$ python arg.py -a 1 -b='/home/long'
Argument a values: 1
Argument b values: /home/long
我们可以看到,有了很Linux 的help 帮助信息 ,还可以随便传递参数。是不是很好玩,下面简单介绍:
一、 如何获取不定个数的参数
当然,万变不离其宗,偶们还是得老老实实的靠 sys.argv 来传递参数,但是我们之前介绍的博文中是这样传递参数的:
(script, first_argu, second_argu)= sys.argv
这样固然简单易用,但是问题就是参数的数量、顺序、格式都根据脚本中接收代码确定下来,没有易用性。
那么我们如何解决带不定数量的参数呢? 我使用的方法很简单, 不使用固定数量的变量来接收参数,来一个哥接一个,全给你放到列表中:
def add_sys_argv():
arg_list = []
for i in range(1, len(sys.argv)):
arg_list.append(sys.argv[i])
return arg_list
那么,这个函数获取并返回的列表中存放的都是用户传递进来的参数呢。所以,一切就