使用 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.txt
和 python 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()
我正在使用 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.txt
和 python 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()