2012-01-27 12 views
15

Estoy tratando de hacer que mi script de python sea muy fácil de usar, así que me gustaría escribir algún tipo de ayuda para él. ¿Cuál es tu consejo para esto? Podría poner algo de lógica en que si el usuario pasó ayuda como un parámetro del guión, obtienen ayuda. ¿Hay una mejor práctica o convención para esto?Escribiendo una ayuda para el script de python

Respuesta

26

Use argparse.

Por ejemplo, con test.py:

import argparse 

parser=argparse.ArgumentParser(
    description='''My Description. And what a lovely description it is. ''', 
    epilog="""All's well that ends well.""") 
parser.add_argument('--foo', type=int, default=42, help='FOO!') 
parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!') 
args=parser.parse_args() 

Correr

% test.py -h 

produce

usage: test.py [-h] [--foo FOO] [bar [bar ...]] 

My Description. And what a lovely description it is. 

positional arguments: 
    bar   BAR! 

optional arguments: 
    -h, --help show this help message and exit 
    --foo FOO FOO! 

All's well that ends well. 
6

La mejor práctica es utilizar argparse para manejar todas sus argumentos de línea de comandos. Incluye un valor predeterminado --help que puede personalizar según sus gustos.

Aquí está el ejemplo más sencillo:

import argparse 

parser = argparse.ArgumentParser(description='This is my help') 

args = parser.parse_args() 

que se traduce en:

% python argparse_test.py -h 
usage: argparse_test.py [-h] 

This is my help 

optional arguments: 
    -h, --help show this help message and exit 

Puede definir todos sus argumentos con argparse y establecer un mensaje de ayuda para cada uno de ellos. Los argumentos filtrados/validados resultantes son devueltos por parser.parse_args().

Cuestiones relacionadas