Попытка назначить путь к ArgumentParser

#python

#python

Вопрос:

Я пытаюсь получить доступ к папке «ресурсы» с помощью ArgumentParser. Этот код и папка «ресурсы» находятся в одной папке…

Просто чтобы попытаться запустить код, я поместил функцию print в функцию predict . Однако возникает эта ошибка:

 predict.py: error: the following arguments are required: resources_path
  

Как я могу это исправить?

 from argparse import ArgumentParser


def parse_args():
    parser = ArgumentParser()
    parser.add_argument("resources_path", help='/resources')

    return parser.parse_args()


def predict(resources_path):

    print(resources_path)

    pass


if __name__ == '__main__':
    args = parse_args()
    predict(args.resources_path)
  

Комментарии:

1. Как вы это называете?

Ответ №1:

Из вашего сообщения об ошибке я предполагаю, что вы пытаетесь вызвать свою программу следующим образом:

 python predict.py
  

Анализатор аргументов по умолчанию получает аргументы из sys.argv , то есть из командной строки. Вам придется передать его самостоятельно следующим образом:

 python predict.py resources
  

Возможно, вы хотите, чтобы аргумент resources по умолчанию ./resources был равен, если вы ничего не передаете. (И я также предполагаю, что вы хотите ./resources , а не /resources .) Для этого есть аргумент ключевого слова:

 ....
parser.add_argument('resources_path', default='./resources')
...
  

Комментарии:

1. Спасибо! Моя ошибка заключалась в том, что я не запускал программу через терминал, а компилировал ее непосредственно из редактора