Python获取命令行参数的方法

一、使用click库的@click.command()@click.option()装饰器

import click

@click.command()
@click.option("-env", default=None, help="输入运行环境:test 或 live")
@click.option("-m", default=False, type=bool, help="是否发送企业微信")
@click.option("-e", default=False, type=click.Choice(['False', 'True'], help="是否发送邮件")
def main(env, m, e):
    """主函数"""
    if env:
        print("运行环境:", env)
    else:
        print("未指定运行环境")

    print("是否发送企业微信:", m)
    print("是否发送邮件:", e)

if __name__ == "__main__":
    main()

命令行运行:

python script.py -env test -m True -e False

输出:

运行环境: test
是否发送企业微信: True
是否发送邮件: False

二、使用argparse标准库

import argparse

# 创建解析器对象
parser = argparse.ArgumentParser()

# 添加命令行参数选项
parser.add_argument('-m', '--send-wechat', type=bool, help='Whether to send WeChat notification')
parser.add_argument('-e', '--send-email', type=bool, help='Whether to send email notification')

# 解析命令行参数(这种方式会只认当前定义的命令行参数,导致跟其他的库的命令行参数冲突,比如pytest单独执行某条用例时,会被报参数不存在)
# args = parser.parse_args()

# 使用 parse_known_args 解析命令行参数,该方法只解析已知的参数,而忽略未知的参数(推荐用这种)
args, unknown_args = parser.parse_known_args()

# 获取命令行参数的值并赋值给对应的变量
IS_SEND_WECHAT = args.send_wechat
IS_SEND_EMAIL = args.send_email

# 打印变量的值
print('IS_SEND_WECHAT:', IS_SEND_WECHAT)
print('IS_SEND_EMAIL:', IS_SEND_EMAIL)

命令行运行:

python3 script.py -m False -e True

输出:

IS_SEND_WECHAT: False
IS_SEND_EMAIL: True

三、使用sys.argv方法

import sys

# 获取命令行参数
arguments = sys.argv

# 打印命令行参数
for arg in arguments:
    print(arg)
    print('参数:',arg[1])

命令行运行

python script.py 100 a=1 nihao

输出:

['script.py', '100', 'a=1', 'nihao']
'参数':'a=1'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值