Имам програма на 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
)?