Python 2.7。解析输入参数

问题描述 投票:0回答:1

一天的好时光!首先,我要说我是Python世界的新手。我在解析输入参数时遇到问题。此时,我正在使用Python 2.7和名为argparse的模块。我正在尝试设计一个简单的应用程序,它将能够解析简单的输入参数。这是一个简短的示例:

my_app.py sync --force

第二个例子:

my_app.py补丁-分支

我看到为此,我可以使用可以与位置和可选参数一起使用的add_argument。就像我的情况一样,我希望有几个位置(但同时是可选的)和几个可选的参数。为此,我设计了小脚本

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='My App')
    parser.add_argument('sync', type=bool, const=True, nargs='?')
    parser.add_argument('-f', '--force', dest='sync_force', type=bool, const=True, nargs='?')
    parser.add_argument('-b', '--branch', type=str, const=True, nargs='?')
    parser.add_argument('-u', '--url', type=str, const=True, nargs='?')
    parser.add_argument('patch', type=bool, const=True, nargs='?')
    parser.add_argument('revert', type=bool, const=True, nargs='?')
    parser.add_argument('verify', type=bool, const=True, nargs='?')

    values = parser.parse_args()

    if values.revert:
        handler.revert()
    else:
        parser.print_help()

[我看到我可以使用nargs='?'将位置参数指定为可选参数,但是每次我调用脚本时,即使我指定了' patch”。因此,我认为它只是显示第一个添加的元素。您能告诉我什么地方出了问题吗?

一天的好时光!首先,我要说我是Python世界的新手。我在解析输入参数时遇到问题。目前,我正在使用Python 2.7和称为argparse的模块。 ...
python python-2.7 parameter-passing command-line-arguments argparse
1个回答
0
投票
使用:
© www.soinside.com 2019 - 2024. All rights reserved.