首页 > 解决方案 > 将 ArgumentParser 移动到单独的文件中

问题描述

我有一个越来越长的 argparser。我想将它移动到一个单独的文件中以保持我的主脚本干净。现在我有:

主文件

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-t', '--test',
                    default=0.1,
                    type=float,
                    help='test')
# Many more arguments
args = parser.parse_args()
# My main code
print("Argument in my code:{}".format(args.test))
...

有没有办法把它变成两个文件来保持我的主文件干净?

主文件

import parsing_file
# My main code
print("Argument in my code:{}".format(args.test))

解析文件.py

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-t', '--test',
                    default=0.1,
                    type=float,
                    help='test')
# Many more arguments
args = parser.parse_args()

标签: pythonargparse

解决方案


感谢@Green Clock Guy 和@chepner 关于如何解决这个问题的建议。他们建议将解析器变成一个函数并将其返回给主函数。

主文件

import parsing_file

parser = parsing_file.create_parser()
args = parser.parse_args()
# My main code
print("Argument in my code:{}".format(args.test))

解析文件.py

import argparse

def create_parser():
    parser = argparse.ArgumentParser()
    parser.add_argument('-t', '--test',
                        default=0.1,
                        type=float,
                        help='test')
    # Many more arguments
    return parser

推荐阅读