有时在函数中传参时,传入的参数是不规则,且是固定的格式,不是很灵活,那么就需要通过命令行参数进行传参,这样传入的参数会根据自己的需要,传入不同的参数。
第一种方式:sys.argv
此方式传参较为简单,只需要在后面输入随意的参数,并且可以多输入几个参数,通过命令:
import sys
def test1():
print(sys.argv)
>python test.py 参数1 参数2 参数3
#输出结果
['test.py', '参数1', '参数2', '参数3']
第二种方式:argparse模块
此方式较为麻烦,不过可以指定传参的变量名,传参类型,默认值,以及是否是必须输入,这样可以有效的对某个参数是否是必须的,做了一个限制,可以防止程序出错。
import argparse
def test2():
parser = argparse.ArgumentParser(description="这是参数测试对象")
parser.add_argument('--a', dest='inte', default=None,type=int,required=True)
print(parser.description)
args = parser.parse_args()
print(args.inte)
>python test.py --a 12321
#输出结果
这是参数测试对象
12321
第三种方式:fire模块
通过这个模块,也可以随意的进行传参。
import fire
def test3(name:str,age:int):
print(name,age)
if __name__ == '__main__':
fire.Fire(test3)
>python test.py -name zhangsan -age 20
#输出结果
zhangsan 20
总结:以上就是三种方式进行python命令行传参的方式,在某些场合下,通过命令行的方式运行函数是由一定的需要的。最起码不用打开修改代码了,直接运行该py文件就行。