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

如何通过argparse从Bash向Python传递多个数组?

从Bash传递多个数组到Python脚本的解决方案

我来帮你搞定这个问题!既然你已经能成功传递单个数组,那多个数组的传递其实是思路的延伸,下面给你两种亲测有效的实现方式,你可以根据自己的需求选择:

方案一:用分隔符区分多个数组

这个方法适合数组数量不固定的场景,核心是用一个不会出现在数组元素里的特殊字符串当分隔标记,把多个数组拼接成一个参数列表传给Python,再在Python里拆分回独立数组。

Bash 脚本示例

#!/bin/bash

# 定义几个测试数组(元素带空格也没问题)
fruits=("apple pie" "banana" "cherry tart")
colors=("red" "bright yellow" "dark green")
quantities=("10" "25" "15")

# 用---作为数组分隔符,把所有数组依次传给Python脚本
python3 your_script.py "${fruits[@]}" "---" "${colors[@]}" "---" "${quantities[@]}"

Python 脚本示例

import sys

def split_into_arrays(args, separator="---"):
    """把带分隔符的参数列表拆分成多个数组"""
    arrays = []
    current = []
    for arg in args:
        if arg == separator:
            arrays.append(current)
            current = []
        else:
            current.append(arg)
    # 别忘了把最后一组元素加进去
    if current:
        arrays.append(current)
    return arrays

if __name__ == "__main__":
    # 去掉脚本本身的名字,只处理传入的参数
    input_args = sys.argv[1:]
    arrays = split_into_arrays(input_args)
    
    # 验证结果
    print("水果数组:", arrays[0])
    print("颜色数组:", arrays[1])
    print("数量数组:", arrays[2])

方案二:用argparse明确指定每个数组参数

如果你的数组数量固定,用argparse给每个数组单独设置参数会更清晰,可读性更强。

Bash 脚本示例

#!/bin/bash

fruits=("apple" "banana" "cherry")
colors=("red" "yellow" "green")

# 用--fruits、--colors这样的参数名传递每个数组
python3 your_script.py --fruits "${fruits[@]}" --colors "${colors[@]}"

Python 脚本示例

import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='接收多个字符串数组')
    # nargs='+'表示该参数接收一个或多个元素,自动组成列表
    parser.add_argument('--fruits', nargs='+', help='水果名称数组')
    parser.add_argument('--colors', nargs='+', help='对应颜色数组')
    
    args = parser.parse_args()
    
    # 输出结果
    print("水果列表:", args.fruits)
    print("颜色列表:", args.colors)

关键注意点

  • 一定要用"${array[@]}"的格式传递数组,这样能保留数组元素中的空格(比如"apple pie"这种带空格的元素不会被拆成两个参数)。
  • 方案一中的分隔符要选绝对不会出现在你数组元素里的字符串,比如如果你的元素里可能出现---,就换成###或者其他特殊标记。

内容的提问来源于stack exchange,提问作者lanadaquenada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:08:17