【问题标题】:Parse command line argument using argparse使用 argparse 解析命令行参数
【发布时间】:2013-09-13 19:35:27
【问题描述】:

我有一个实用程序,它可以传递多个参数以及需要元素任何人都可以提供一些输入我如何使用 argparse 处理这种情况。请找到示例代码

#! /usr/bin/env python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-cdl", dest = "input_file")
args = parser.parse_args()
print args

Command Line :  python test_6.py -cdl sample (workfine)

utility also pass :  python test_6.py -cdl sample -cdl-sp -cdl-ck

工具的最后两个参数。作为我的程序,我需要获取示例文件并忽略其余两个参数而没有任何错误。在当前代码中,它给了我错误

【问题讨论】:

  • 它应该说“无效的选择:-cdl-sp”如果你想避免这种情况(这不是推荐的)看看这个,也许你可以在一个错误发生并静默失败stackoverflow.com/questions/18700634/…

标签: python argparse


【解决方案1】:
args, rest = parser.parse_known_args()
print args
print rest

休息应该相等

['-cdl-sp', '-cdl-ck']

【讨论】:

    【解决方案2】:

    您可以为不需要的参数添加选项。

    parser.add_argument("-cdl-sp", dest = "sp",  action='store_true')
    parser.add_argument("-cdl-sk", dest = "sk",  action='store_true')
    

    【讨论】:

    • 但它不包含任何值。 python test_6.py -cdl sample -cdl-sp -cdl-ck
    • 使用 "action='store_true'" 解析器不期望任何值。如果参数存在,您将得到一个布尔值 true,否则为 false。
    • 这也是有效的声明,但上面的解决方案对我来说效果更好。当我为调用工具编写包装器时,一些用户可以添加更多选项,我不需要更改任何代码但感谢您的回复
    猜你喜欢
    • 2014-07-10
    • 2021-11-05
    • 2023-04-03
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    相关资源
    最近更新 更多