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

Command line parsing using key values in 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)但这似乎不起作用。它不断抛出错误。我该如何解决这个问题。

像这样

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

您可以在 documentation

中查看不同的选项

编辑:我从未尝试过 -i=input 但不使用 = 的选项对我有用

试试这个代码(它在我这边完全有效):

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='some', m=None, o=None)

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()