You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何接收带变量名的命令行参数 如python test.py a=10 b=20

Python实现命令行键值对传参的方案

这类需求完全可以在Python中实现,常用的实现方式有以下几种:

方案1:原生解析sys.argv(完全适配a=10格式,无额外依赖)

直接读取命令行参数列表,按=分割得到键值对即可,适合简单场景:

import sys

def parse_key_value_args():
    args = {}
    for arg in sys.argv[1:]:
        # 只分割第一个=,避免value中包含=的场景报错
        if '=' in arg:
            key, value = arg.split('=', 1)
            args[key.strip()] = value.strip()
    return args

if __name__ == '__main__':
    args = parse_key_value_args()
    # 需要数值类型自行转换即可
    a = int(args.get('a', 0)) # 第二个参数为默认值
    b = int(args.get('b', 0))
    print(f"a的值为{a}, b的值为{b}")

运行命令python test.py a=10 b=20即可直接拿到对应参数值。

方案2:标准库argparse(官方规范方案)

Python内置的标准命令行解析库,支持类型校验、默认值、帮助文档生成,通常使用--参数名=值的规范格式:

import argparse

# 初始化解析器
parser = argparse.ArgumentParser(description='测试参数解析')
# 定义接收的参数
parser.add_argument('--a', type=int, default=0, help='参数a的说明')
parser.add_argument('--b', type=int, default=0, help='参数b的说明')
# 解析参数
args = parser.parse_args()

# 直接使用属性调用
print(args.a)
print(args.b)

运行命令为python test.py --a=10 --b=20,如果需要兼容无--前缀的a=10格式,可配合方案1的解析逻辑使用。

方案3:第三方库typer/click(适合复杂命令行工具)

如果需要开发功能复杂的命令行工具,可使用typer等第三方库,自动类型推导、帮助生成的能力更强:

  1. 先安装依赖:pip install typer
  2. 代码示例:
import typer

app = typer.Typer()

@app.command()
def main(
    a: int = typer.Option(0, help="参数a的说明"),
    b: int = typer.Option(0, help="参数b的说明")
):
    print(f"a={a}, b={b}")

if __name__ == "__main__":
    app()

运行命令为python test.py --a=10 --b=20,还可直接执行python test.py --help查看自动生成的帮助文档。


内容的提问来源于stack exchange,提问作者A. Gehani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:48:03