#python #argparse #getopt
Вопрос:
def main(argv):
parser = argparse.ArgumentParser()
parser.add_argument('p', 'projectType', type=str, help = 'c or c project type', choices=['c', 'c '])
parser.add_argument('i', 'inputfile', type=pathlib.Path, help = 'the input file path')
parser.add_argument('o',"outputfile",type=pathlib.Path, help= 'the output file path')
parser.add_argument
args = parser.parse_args()
когда я запускаю этот код в командной строке и сначала ввожу файл ввода, например.. это выдает ошибку. есть ли у Argparse такая опция, как getopt (где я называю что-то буквой перед ее вводом, чтобы не перепутать, например, » — я …ввод…»). Здесь этот параметр предназначен только для необязательных аргументов.
Есть ли способ для позиционных аргументов сделать это?
Комментарии:
1. Покажите нам фактическую командную строку, которая выдает ошибку (например, «файл ввода первым» совершенно неясен). Затем покажите нам, в чем ошибка («это выдает мне ошибку» непонятно). Затем объясните, какую командную строку вы ожидаете, что ваш анализатор примет.
2. вы хотите
optional
прочитать документы. Также перечитайте, что там говорится оtype
параметре.
Ответ №1:
В соответствии с документацией argparse вы бы определили его как «необязательный» аргумент, но с required
флагом, установленным в true, например:
parser.add_argument('-i', '--inputfile', required=True, type=pathlib.Path, help='the input file path')