Python Argparse AttributeError:'_StoreAction';对象没有属性';解析args';

Python Argparse AttributeError:'_StoreAction';对象没有属性';解析args';,python,argparse,Python,Argparse,我第一次尝试使用argparse。我试图写一个代码,但不幸的是,我得到了一个错误 import argparse import pandas as pd from data_util.data_loader import Data_load def argparser(): parser = argparse.ArgumentParser(description='Parameters') parser = parser.add_argument('--dataset_pat

我第一次尝试使用argparse。我试图写一个代码,但不幸的是,我得到了一个错误

import argparse
import pandas as pd
from data_util.data_loader import Data_load


def argparser():
    parser = argparse.ArgumentParser(description='Parameters')
    parser = parser.add_argument('--dataset_path', help='data_directory',metavar='Path',
                                 default='D:/content_search/data_util/data/ArticleDataset.json')
    args = parser.parse_args()
    return args


def main():
    args = argparser()
    data_frame = Data_load(args.dataset_path)
    print(data_frame)


if __name__ == '__main__':
    main()
我得到以下错误:

D:\Content_search\Scripts\python.exe D:/content_search/main.py
Traceback (most recent call last):
  File "D:/content_search/main.py", line 21, in <module>
    main()
  File "D:/content_search/main.py", line 15, in main
    args = argparser()
  File "D:/content_search/main.py", line 10, in argparser
    args = parser.parse_args()
AttributeError: '_StoreAction' object has no attribute 'parse_args'

Process finished with exit code 1
D:\Content\u search\Scripts\python.exe D:/Content\u search/main.py
回溯(最近一次呼叫最后一次):
文件“D:/content\u search/main.py”,第21行,在
main()
文件“D:/content\u search/main.py”,第15行,在main中
args=argparser()
argparser中第10行的文件“D:/content\u search/main.py”
args=parser.parse_args()
AttributeError:“\u StoreAction”对象没有属性“parse\u args”
进程已完成,退出代码为1

请帮助我理解我在哪里犯了错误。提前感谢。

您在函数arparser()中定义了两次解析器。移除parser=parser.add_参数,只使用parser.add_参数,如下所示

import argparse
import pandas as pd
from data_util.data_loader import Data_load


def argparser():
    parser = argparse.ArgumentParser(description='Parameters')
    parser.add_argument('--dataset_path', help='data_directory',metavar='Path',
                                 default='D:/content_search/data_util/data/ArticleDataset.json')
    args = parser.parse_args()
    return args


def main():
    args = argparser()
    data_frame = Data_load(args.dataset_path)
    print(data_frame)


if __name__ == '__main__':
    main()

这个
解析器
重新分配的目的是什么
parser=parser.add_参数(…)
文档中没有建议这样做的,是吗?我不知道我是否理解这个问题。我在文档中找到了这个用法。它的调用。添加参数方法。非常感谢您的帮助。从我的角度来看,这真是一个愚蠢的错误。有关argparse的一些有趣细节,请查看此链接: