寻求支持多组输入输出文件对的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
相关产品推荐
相关产品推荐

