Argparse:选项异常需要 = True

Argparse: exception for option required=True

我使用以下代码来解析我的脚本的参数(简化版):

import argparse

ap = argparse.ArgumentParser()
    ap.add_argument("-l", "--library", required=True)
ap.add_argument("--csv2fasta", required=False)

args = vars(ap.parse_args())

对于脚本可以是 运行 的每一种方式,应该需要 -l/--library 标志 (required=True),但是有没有一种方法可以使用设置 [=13] =] 当你只使用 --csv2fasta 标志时?

你必须在解析参数后编写测试,这是我对这种情况所做的:

def parse_args():
    ap = argparse.ArgumentParser()
    ap.add_argument("-l", "--library")
    ap.add_argument("--csv2fasta")
    args = ap.parse_args()
    if not args.library and not args.csv2fasta:
        ap.error("--library is required unless you provide --csv2fasta argument")
    return args
$ python3 test-args.py
usage: test-args.py [-h] [-l LIBRARY] [--csv2fasta CSV2FASTA]
test-args.py: error: --library is required unless you provide --csv2fasta argument

$ python3 test-args.py --csv2fasta value