使用Python和argparse进行多个位置参数的处理

8 浏览
0 Comments

使用Python和argparse进行多个位置参数的处理

我正在尝试使用argparse来解析我正在开发的程序的命令行参数。基本上,我需要支持在可选参数中分散的多个位置参数,但是无法让argparse在这种情况下工作。在实际程序中,我使用了一个自定义动作(每次找到一个位置参数时,我需要存储命名空间的快照),但我遇到的问题可以通过使用"append"动作复制:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', action='store_true')
parser.add_argument('-b', action='store_true')
parser.add_argument('input', action='append')
parser.parse_args(['fileone', '-a', 'filetwo', '-b', 'filethree'])

我希望结果是命名空间为`(a=True, b=True, input=['fileone', 'filetwo', 'filethree'])`,但是我不知道如何做到这一点 - 如果确实可以的话。我在文档和谷歌上都没有找到任何关于这个问题是否可能的信息,虽然很可能(也许)我忽略了什么。有人有什么建议吗?

0