У меня есть программа Python, которая принимает в качестве своего (единственного) позиционного аргумента командной строки одно или несколько выражений пути к файлу. Я использую argparse для синтаксического анализа CL и argparse.REMAINDER
для переменной, содержащей пути к файлам. См. код ниже:
import argparse
import sys
# Create parser
parser = argparse.ArgumentParser(
description="My test program")
def parseCommandLine():
# Add arguments
parser.add_argument('filesIn',
action="store",
type=str,
nargs=argparse.REMAINDER,
help="input file(s)")
# Parse arguments
args = parser.parse_args()
return(args)
def main():
# Get input from command line
args = parseCommandLine()
# Input files
filesIn = args.filesIn
# Print help message and exit if filesIn is empty
if len(filesIn) == 0:
parser.print_help()
sys.exit()
# Do something
print(filesIn)
if __name__ == "__main__":
main()
Теперь, когда пользователь запускает скрипт без каких-либо аргументов, это приводит к следующему справочному сообщению:
usage: test.py [-h] ...
Где ...
представляет позиционный ввод. С точки зрения пользователя было бы более информативно, если бы вместо этого отображалось имя переменной (filesIn
). Тем более, что ввод test.py -h
приводит к следующему:
usage: test.py [-h] ...
My test program
positional arguments:
filesIn input file(s)
т.е. в строке использования отображается ...
, но затем в списке позиционных аргументов используется filesIn
.
Итак, мой вопрос: есть ли простой способ изменить это (т.е. всегда отображать filesIn
)?