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

如何从终端向Python脚本传递连续数字范围作为输入?

实现连续子用例批量运行的几种方法

方法1:用xargs配合seq传递参数

你已经知道seq -w 0001 0008能输出连续带前导零的序列,用xargs可以把这些输出转成script.py的命令行参数:

seq -w 0001 0008 | xargs python script.py

xargs会把管道传来的每行内容合并成空格分隔的参数,最终效果和手动输入python script.py 0001 0002 ... 0008完全一致。

方法2:用bash大括号扩展(无需seq)

bash本身支持带前导零的连续序列扩展,直接写大括号就能生成参数,更简洁:

python script.py {0001..0008}

执行这条命令时,bash会自动把{0001..0008}展开成0001 0002 ... 0008,直接传给脚本。

方法3:修改Python脚本支持范围参数

如果经常需要用范围,不如直接在脚本里加个参数解析逻辑,支持类似0001-0008的范围输入,用起来更灵活。比如在脚本开头加这段解析代码:

import sys

def get_test_cases(args):
    test_cases = []
    for arg in args:
        if '-' in arg:
            # 拆分范围的起始和结束
            start_str, end_str = arg.split('-')
            digit_length = len(start_str)
            start_num = int(start_str)
            end_num = int(end_str)
            # 生成连续带前导零的用例编号
            for num in range(start_num, end_num + 1):
                test_cases.append(f"{num:0{digit_length}d}")
        else:
            test_cases.append(arg)
    return test_cases

if __name__ == "__main__":
    cases = get_test_cases(sys.argv[1:])
    # 这里替换成你的子用例执行逻辑
    for case in cases:
        print(f"执行子用例: {case}")

之后你可以这样运行脚本:

# 单个范围
python script.py 0001-0008
# 混合单个用例和范围
python script.py 0001 0003-0005 0008

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:45:24