尝试为ArgumentParser分配路径

时间:2019-04-10 10:46:20

标签: python

我正在尝试使用ArgumentParser访问“ resources”文件夹。 该代码和“资源”文件夹位于同一文件夹中。

只是为了尝试运行代码,我已经在预测函数中添加了打印函数。但是会发生此错误:

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 个答案:

答案 0 :(得分:0)

我从您的错误消息中猜测,您正在尝试像这样调用程序:

python predict.py

默认情况下,参数解析器从sys.argv(即命令行)获取参数。您必须自己这样通过它:

python predict.py resources

如果您不传递任何内容,则可能希望将resources参数默认为./resources。 (而且我进一步假设您想要./resources,而不是/resources。)为此有一个关键字参数:

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