python - 运行需要多个参数并使用 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)
解决方案
推荐阅读
- python - Openpyxl - 从 Excel 文件中的所有工作表中删除格式
- javascript - 在数组 AJAX/NodeJS 中推送数据
- python - Running parallel python scripts from bash file
- ruby-on-rails - MacOS Catalina 上的多个 Ruby 和 gem。如何卸载以及在 Mac 上安装干净的 ruby/gem/bundler 的最佳选择
- reactjs - React typescript - 类型'boolean'不可分配给类型
- javascript - Selenium 点击导致页面弹出错误登陆页面
- python - 调用函数后的 (x) 是什么意思?
- ios - Ionic 4 IOS 深层链接重定向到浏览器而不是实际应用程序
- django - 通过 pytest 运行时未完成登录视图
- c - Linux 内核中如何解决线程本地存储偏移?