python脚本传参

偏执的太偏执、 2022-09-04 06:45 330阅读 0赞

在Linux环境调用python脚本,需要从外部传参,python提供了两种传参方式:

1.顺序传参

import sys
它封装了与python解释器相关的数据,在脚本里面使用使用参数的顺序必须和传参顺序一致

  1. import sys
  2. print("传入参数的总长度为:",len(sys.argv))
  3. print("type:",type(sys.argv))
  4. print("function name:",sys.argv[0])
  5. try:
  6. print("name:",sys.argv[1])
  7. print("age:",sys.argv[2])
  8. print("sex:",sys.argv[3])
  9. except Exception as e:
  10. print("Input Error:",e)

在命令行调用该脚本,输出为:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py Tom 18 boy
  2. 传入参数的总长度为: 4
  3. type: <class 'list'>
  4. function name: Compute.py
  5. name: Tom
  6. age: 18
  7. sex: boy

如果多传了参数,则多余的参数会被舍弃:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py Tom 18 boy hello
  2. 传入参数的总长度为: 5
  3. type: <class 'list'>
  4. function name: Compute.py
  5. name: Tom
  6. age: 18
  7. sex: boy

如果少传了,则会报错:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py Tom
  2. 传入参数的总长度为: 2
  3. type: <class 'list'>
  4. function name: Compute.py
  5. name: Tom
  6. Input Error: list index out of range

2.不按顺序传参

import argparse

  1. import argparse
  2. parser = argparse.ArgumentParser(description='argparse testing')
  3. parser.add_argument('--name','-n',type=str, default = "Tom",required=True,help="a student's name")
  4. parser.add_argument('--age','-a',type=int, default=18,help='age of the student')
  5. parser.add_argument('--sex','-s',type=str, default='boy',help="sex of the student")
  6. parser.add_argument('--favorite','-f',type=str, nargs="+",required=False,help="favorite of the student")
  7. args = parser.parse_args()
  8. print(args.name)
  9. print(args.age)
  10. print(args.sex)
  11. print(args.favorite)

不按照顺序的传参输出:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py --name Lin --age 13 --favorite food --sex boy
  2. Lin
  3. 13
  4. boy
  5. ['food']

参数使用:

  1. --xx 完整参数输入
  2. -x 简写参数输入
  3. type 输入的参数将要被转换的数据类型
  4. default 默认值
  5. help 参数介绍
  6. nargs 可传入的参数数量
  7. required 是否为必须参数

简写参数输入:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py -n Lin -a 13 -f food -s boy
  2. Lin
  3. 13
  4. boy
  5. ['food']

使用默认参数:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py -f football -n Tom
  2. Tom
  3. 18
  4. boy
  5. ['football']

多个参数:

  1. E:\biancheng\python\Tiantian_learning>python Compute.py -f football food music -n Tom
  2. Tom
  3. 18
  4. boy
  5. ['football', 'food', 'music']

关于argparse的更多使用请参考官方介绍:argparse

发表评论

表情:
评论列表 (有 0 条评论,330人围观)

还没有评论,来说两句吧...

相关阅读

    相关 shell脚本函数

    函数可以提高代码复用,在python、java中比较常见。 shell脚本也有函数,可以将一组命令集或语句形成一个可用代码块。 定义格式 函数名(){