• python命令行传递参数的两种方式!


    python在命令行运行.py文件时,如何在命令行传递参数给运行程序,python默认提供了sys模块的系统参数属性实现接收命令行中的外部参数。
     

    另一种则是通过argparse模块实现的,argparse模块可以实现事先对命令行参数的初始化,更加的便于命令行参数的管理。

    1、sys.argv参数

    sys.argv的命令行参数获取方式比较的简单,直接通过提取sys.argv的值就可以获取到其对应的参数。

    比如,下面写一个hello_world.py模块,并且在其中引用了命令行参数。

    1. import sys
    2. print('Hi ' + str(sys.argv[1]) + ', welcome to Hello World!')

    直接在命令行执行当前的.py文件,执行命令应该是这样的。

    python hello_world.py Siri
    

    这时我们预期的结果应该是下面这样的。

    # Hi Siri, welcome to Hello World!
    

    执行后的结果和预期的运行结果是一模一样的。

    在运行时,有一个不好的地方时,若是在命令行没有传递足够的参数,则会直接抛出下面的异常。

    2、argparse参数

    使用argparse模块,有一个好处就是事先对需要在命令行传递的参数做一个初始化的赋值,若是命令行没有值的时候则可以使用默认值来赋值。

    并且argparse模块可以通过参数构造器ArgumentParser实现对参数的管理,看起来一目了然。

    1. import argparse
    2. # 初始化参数构造器
    3. parser = argparse.ArgumentParser()
    4. # 在参数构造器中添加两个命令行参数
    5. parser.add_argument('--name'type=str, default='Siri')
    6. parser.add_argument('--message'type=str, default=',Welcom to Python World!')
    7. # 获取所有的命令行参数
    8. args = parser.parse_args()
    9. print('Hi ' + str(args.name) + str(args.message))

    同样的,创建一个hello_python.py文件,来运行上述代码块,看一下执行效果。

    python hello_python.py
    

    可以发现在未添加命令行的参数传递后,默认使用的是我们构造器中添加的参数默认值来进行赋值的。

    接下来,若是我们在命令行中再次对参数进行重新赋值是怎样的效果。

    python hello_python.py --name Laow  --message Hello_World
    

  • 相关阅读:
    缓冲区“l”(大小为 24 字节)将溢出;4 字节将在偏移 24 时开始写入
    关键词搜索1688商品数据接口(标题|主图|SKU|价格|优惠价|掌柜昵称|店铺链接|店铺所在地)
    33.1.2 安装Keepalived
    C++ map和hashmap用法
    第十九章 使用工作队列管理器(二)
    鸿蒙实战项目开发:【短信服务】
    CALL命令无法在PowerShell中使用
    【String——简单使用】
    C盘扩容好帮手——傲梅分区助手
    uView 中select组件确认选择问题
  • 原文地址:https://blog.csdn.net/hebiwen95/article/details/126246760