Eu uso o seguinte código simples para analisar alguns argumentos; note que um deles é necessário. Infelizmente, quando o usuário executa o script sem fornecer o argumento, o texto de uso / ajuda exibido não indica que existe um argumento não opcional, que eu acho muito confuso. Como posso obter python para indicar que um argumento não é opcional?
Aqui está o código:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Foo')
parser.add_argument('-i','--input', help='Input file name', required=True)
parser.add_argument('-o','--output', help='Output file name', default="stdout")
args = parser.parse_args()
print ("Input file: %s" % args.input )
print ("Output file: %s" % args.output )
Ao executar o código acima sem fornecer o argumento necessário, obtenho a seguinte saída:
usage: foo.py [-h] -i INPUT [-o OUTPUT]
Foo
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Input file name
-o OUTPUT, --output OUTPUT
Output file name
optional arguments
para os argumentos necessários ainda é enganoso.
-i INPUT
peça não é cercada por colchetes, que sutileza indica que é realmente necessário. Além disso, você pode explicar manualmente que através dohelp
param