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

寻求支持多组输入输出文件对的argparse实现方案

用argparse实现多组输入/输出文件配对的方案

如果你需要让命令行支持重复的--input和--output参数(即每个输入对应一个输出,可指定多组),可以通过argparse的action='append'特性实现,同时添加校验逻辑确保输入输出一一配对且至少存在一组。

实现代码

import argparse

def main():
    parser = argparse.ArgumentParser(description='处理多组输入输出文件对')
    # 用action='append'让每个--input参数值追加到列表中
    parser.add_argument('--input', action='append', required=True,
                        help='输入文件路径,可多次指定,每个输入需对应一个--output')
    # 同理处理--output参数
    parser.add_argument('--output', action='append', required=True,
                        help='输出文件路径,可多次指定,与--input一一对应')
    
    args = parser.parse_args()
    
    # 校验输入输出组数量一致
    if len(args.input) != len(args.output):
        parser.error("错误:每个--input必须对应一个--output,输入输出组数量不匹配")
    
    # 遍历处理每组文件对
    for in_path, out_path in zip(args.input, args.output):
        # 这里替换为你的实际文件处理逻辑
        print(f"正在处理: {in_path} -> {out_path}")

if __name__ == '__main__':
    main()

使用示例

完全符合你给出的命令行格式:

app.py --input FOO.txt_in --output FOO.txt_out \
       --input BAR.txt_in --output BAR.txt.Out

关键说明

  • action='append':每次使用--input或--output时,都会将对应的路径追加到各自的列表中,最终args.input和args.output会分别存储所有输入、输出路径。
  • required=True:确保用户至少指定一组输入输出对,避免无参数运行的情况。
  • 数量校验:通过对比两个列表的长度,确保每个输入都有对应的输出,防止出现不配对的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:06:22