所以这是我的问题: 我希望我的程序仅接受一个特定的值,否则它将无法继续。
我知道'choices'关键字可以在此处用作答案:Allowing specific values for an Argparse argument
但是我想问一下是否还有另一种方法,因为如果我告诉它选择,它会在帮助中放弃它。
我可以给我函数以条件来处理它,但是希望使用argparse。
如果有人对此提出建议,我的论点基本上是路径目录,是否有我可以使用的特定选项?
或者你们认为“选择”是我最好的选择。 这里是初级程序员。
答案 0 :(得分:0)
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()
答案 1 :(得分:0)
您不需要argparse
。
import sys, logging
if not 'mellor' in sys.argv[1:]:
logging.error('Speak, friend, and enter')
sys.exit(1)