Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用argparse接受一个特定参数_Python_Python 3.x_Argparse - Fatal编程技术网

Python 使用argparse接受一个特定参数

Python 使用argparse接受一个特定参数,python,python-3.x,argparse,Python,Python 3.x,Argparse,所以我的问题是: 我希望我的程序只接受一个特定的值,没有这个值,它就无法运行 我知道“选择”关键字可以用在这里: 但我想问是否还有其他方法,因为如果我告诉它选择,它会放弃帮助 我可以给我的函数设置条件来处理它,但希望使用argparse 另外,如果有人可以对此提出建议:我的论点基本上是一个路径目录,有没有一个我可以使用的特定选项 还是你们认为选择是我最好的选择。 这里是初级程序员。ArgeParse:您可以用“-year”和参数值传递参数。只有在这种格式下,才会接受参数 import os im

所以我的问题是: 我希望我的程序只接受一个特定的值,没有这个值,它就无法运行

我知道“选择”关键字可以用在这里:

但我想问是否还有其他方法,因为如果我告诉它选择,它会放弃帮助

我可以给我的函数设置条件来处理它,但希望使用argparse

另外,如果有人可以对此提出建议:我的论点基本上是一个路径目录,有没有一个我可以使用的特定选项

还是你们认为选择是我最好的选择。
这里是初级程序员。

ArgeParse:您可以用“-year”和参数值传递参数。只有在这种格式下,才会接受参数

import os
import argparse
from datetime import datetime


def parse_arguments():
    parser = argparse.ArgumentParser(description='Process command line arguments.')
    parser.add_argument('-year', '--yearly', nargs = '*', help='yearly date', type=date_year)

    return parser.parse_args()


def date_year(date):
    if not date:
        return

    try:
        return datetime.strptime(date, '%Y')
    except ValueError:
        raise argparse.ArgumentTypeError(f"Given Date({date}) not valid")



def main():
    parsed_args = parse_arguments()

if __name__ == "__main__":
main()

对此,您不需要
argparse

import sys, logging
if not 'mellor' in sys.argv[1:]:
    logging.error('Speak, friend, and enter')
    sys.exit(1)

你说“如果我告诉它选择,它会在帮助中放弃”是什么意思?那么你想要一个密码
argparse
并不是真正的实现方法。
metavar
可以在帮助中隐藏选项,但不会在错误消息中隐藏它们。解析后,您可能需要自己进行验收测试。如果您想使用自定义函数作为条件,您可能需要将自定义函数用于参数,即解析参数的可调用函数