如何解析命令行参数中的标志?

How can I parse flags in command line argument?

我必须在 Python 中实现一个 --pos 标志并创建一个新条件(如果它存在),但是当我在命令行参数中输入它时 argparse 无法识别它。

parser = argparse.ArgumentParser()
parser.add_argument('lang', type=str, help='Language')
parser.add_argument('mode', help='the mode you want to output the results with')
parser.add_argument('flag', help='the flag that triggers pos-tags')
args = parser.parse_args()

所以当我 运行 命令时:

python3 pi.py en lemma --pos

我收到以下错误消息:

error: unrecognized arguments: --pos

有没有办法将该标志作为第三个参数捕获?

在您的代码中,您定义了一个“位置参数”,这不是您想要的。如果你想实现一个标志(true/false)--pos就这样做。

...
parser.add_argument('--pos', action='store_true', help='the flag that triggers pos-tags')
args = parser.parse_args()

if args.pos:
    ...

并将其命名为

python3 pi.py en lemma --pos