SystemExit:调用parse_args()时出现2个错误

k

我正在学习Python的基础知识,并且已经陷于Argparse教程的开始。我收到以下错误:

import argparse
parser = argparse.ArgumentParser()
args = parser.parse_args()

usage: __main__.py [-h] echo
__main__.py: error: unrecognized arguments: -f
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

%tb命令给出以下输出:

    SystemExit                                Traceback (most recent call last)
<ipython-input-16-843cc484f12f> in <module>()
----> 1 args = parser.parse_args()

C:\Users\Haik\Anaconda2\lib\argparse.pyc in parse_args(self, args, namespace)
   1702         if argv:
   1703             msg = _('unrecognized arguments: %s')
-> 1704             self.error(msg % ' '.join(argv))
   1705         return args
   1706 

C:\Users\Haik\Anaconda2\lib\argparse.pyc in error(self, message)
   2372         """
   2373         self.print_usage(_sys.stderr)
-> 2374         self.exit(2, _('%s: error: %s\n') % (self.prog, message))

C:\Users\Haik\Anaconda2\lib\argparse.pyc in exit(self, status, message)
   2360         if message:
   2361             self._print_message(message, _sys.stderr)
-> 2362         _sys.exit(status)
   2363 
   2364     def error(self, message):

SystemExit: 2

我该如何解决这个问题?谢谢

daphtdazz:

argparse是一个模块,用于解析从命令行传递的参数,因此例如,如果您在命令提示符下键入以下内容:

$ python my_programme.py --arg1=5 --arg2=7

您可以argparse用来解释--arg1=5 --arg2=7零件。如果argparse认为参数无效,则退出,通常在python中通过调用sys.exit()引发SystemExit错误,这就是您所看到的。

所以问题是您正在尝试argparse从交互式解释器(看起来像ipython)中使用,并且此时程序已经启动,因此args应该已经被解析。

如我所述,要尝试正确地创建一个单独的python文件(如),my_programme.py并使用python命令行运行它

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章