2012-01-27 15 views
15

Sto cercando di rendere il mio script python molto facile da usare, quindi mi piace scrivere una sorta di aiuto per questo. Qual è il tuo consiglio per questo? Potrei semplicemente mettere in una logica che se l'utente ha passato l'aiuto come parametro per lo script, ottengono aiuto. C'è una buona pratica o una convenzione per questo?Scrivere un aiuto per lo script python

risposta

26

Utilizzare argparse.

Ad esempio, 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() 

Esecuzione

% 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

Le migliori pratiche è quello di utilizzare argparse per gestire tutti i tuoi argomenti a riga di comando. Include un valore predefinito --help che puoi personalizzare in base alle tue preferenze.

Ecco l'esempio più semplice:

import argparse 

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

args = parser.parse_args() 

che si traduce in:

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

This is my help 

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

È possibile definire tutti i tuoi argomenti con argparse e impostare un messaggio di aiuto per ognuno di loro. Gli argomenti filtrati/convalidati risultanti vengono restituiti da parser.parse_args().

Problemi correlati