使用argparse中的键值进行命令行解析

时间:2017-08-04 10:19:36

标签: python argparse

我在Python中使用Argparser来解析命令行参数。这是我的代码:

parser = argparse.ArgumentParser()
parser.add_argument('input', type=str)
parser.add_argument('method', type=str)
parser.add_argument('output', type=str)
args = parser.parse_args()

如果我指定python argparser.py input.txt hello_world output.txt,它可以正常工作。我想支持python argparser.py -i input.txt -m hello_world -o output.txtpython argparser.py --input input.txt --method hello_world --output output.txt

之类的内容

我试过这个,parser.add_argument('-i', 'input', type=str),但这似乎不起作用。它不断抛出错误。我该如何解决这个问题。

3 个答案:

答案 0 :(得分:0)

像这样的东西

 parser.add_argument('-i', '--input', help='Input')

您可以查看documentation

中的不同选项

编辑:我从未尝试使用-i = input但不使用 = 的选项适用于我

答案 1 :(得分:0)

试试这段代码(它完全在我身边工作):

import argparse

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("-i", "--input", type=str, help="input file")
    parser.add_argument("-m", "--method", type=str, help="message")
    parser.add_argument("-o", "--output", type=str, help="output file")
    args = parser.parse_args()
    return args

arguments = parse_args()

print(arguments)
print(arguments.input)
print(arguments.method)
print(arguments.output)

用法示例: python3 parse.py -i some

<强>结果: 命名空间(i =&#39; some&#39;,m = None,o = None)

答案 2 :(得分:0)

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-i','--input', type=str)
parser.add_argument('-m','--method', type=str)
parser.add_argument('-o','--output', type=str)
args = parser.parse_args()