首页 > 解决方案 > 运行需要多个参数并使用 ExitStack 的脚本

问题描述

我有一个 python3 脚本,它需要三个参数:-orig、-corr、-out,其中“orig”和“corr”用于生成“out”。“-orig”只允许一个文件作为参数,而“-corr”允许多个文件作为输入。该脚本使用 ExitStack 同时处理多个文件。

当我在命令行中运行脚本时,为每个参数指定文件:

python3 myscript.py -orig <orig_file> -cor <cor_file1> [<cor_file2> ...] -out <outputfile>

它可以正常工作,但我想在几个“orig”文件和相应的“corr”文件上运行脚本。有任何想法吗?

这是脚本的开始:

with ExitStack() as stack:
  in_files = [stack.enter_context(open(i)) for i in [args.orig]+args.cor]
# Process each line of all input files.
  for line_id, line in enumerate(zip(*in_files)):  
    orig_sent = line[0].strip()  
    cor_sents = line[1:]

和参数对应的部分:

if __name__ == "__main__":
# Define and parse program input
  parser = argparse.ArgumentParser(description="blabla",formatter_class=argparse.RawTextHelpFormatter, usage="%(prog)s [-h] [options] -orig ORIG -cor COR [COR ...] -out OUT")
  parser.add_argument("-orig", help="The path to the original text file.", required=True)
  parser.add_argument("-cor", help="The paths to >= 1 corrected text files.", nargs="+", default=[], required=True)
  parser.add_argument("-out", help="The output filepath.", required=True)
  args = parser.parse_args()
# Run the program.
  main(args)

标签: pythonpython-3.x

解决方案


推荐阅读