运行Python脚本时在命令行中传入参数

当在命令行中,运行python脚本时,通常有两种方式传入参数

方法1: 基于位置的参数传入

即根据输入参数的的位置,分配给对应的脚本文件。此时,要特别注意参数顺序的一一对应。

  • python脚本文件script.py
import sys

def add(a, b):
    print(float(a)+float(b))

if __name__ == '__main__':
	arg1, arg2 = sys.argv[1], sys.argv[2]   # 接收位置参数
	add(arg1, arg2)

需要注意的是,此时传入的参数都会被默认为str类型,需要在函数内部进行解析和转换。

  • 命令行执行脚本
python script.py 3.0 4.0
# 返回结果7.0

方法2: 基于参数名称的传入
利用argparse模块,在函数内定义好相关的命名参数(包括名称、数据类型和默认值等),从而在命令行中可以方便的调用。

  • python脚本文件script.py
import argparse

parser = argparse.ArgumentParser(description='a demo of script')
parser.add_argument('--a', type=float, default=0.0)  # 添加变量
parser.add_argument('--b', type=float, default=1.0)

if __name__ == '__main__':
    args = parser.parse_args()   # 解析所有的命令行传入变量
    add(args.a, args.b)

值得注意的是:add_argument中设定的变量数据类型,理论上可以是任何合法的类型,但一般仅使用bool, int, str, float这些基本类型,更复杂的类型可以在这些基本类型的基础上进行解析。

  • 命令行执行脚本
python script.py --a=4.0 --b=3.0
#  另一种写法: python script.py --a 4.0 --b 3.0
# 返回结果7.0

你可能感兴趣的:(python)