Переместить ArgumentParser в отдельный файл - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть argparser, который становится очень длинным. Я хочу переместить его в отдельный файл, чтобы сохранить мой основной скрипт в чистоте. Прямо сейчас у меня есть:

main.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()
# My main code
print("Argument in my code:{}".format(args.test))
...

Есть ли способ превратить это в два файла, чтобы мой основной файл был чистым?

main.py

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

parsing_file.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()

1 Ответ

0 голосов
/ 26 февраля 2020

Спасибо @ Green Clock Guy и @chepner за предложения о том, как решить эту проблему. Они предложили превратить парсер в функцию и вернуть его в основную функцию.

main.py

import parsing_file

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

parsing_file.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
...