2012-01-27 20 views
15

Próbuję uczynić mój skrypt Pythona bardzo przyjaznym dla użytkownika, więc lubię pisać dla niego jakąś pomoc. Jaka jest twoja rada dla tego? Mogę po prostu wprowadzić pewną logikę, że jeśli użytkownik przekazał pomoc jako parametr do skryptu, otrzymają pomoc. Czy istnieje w tym celu najlepsza praktyka lub konwencja?Pisanie pomocy dla skryptu Pythona

Odpowiedz

26

Użyj argparse.

Na przykład, z 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() 

Running

% test.py -h 

daje

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

Najlepszą praktyką jest stosowanie argparse obsłużyć wszystkie argumenty wiersza poleceń. Zawiera domyślny --help, który można dostosować do własnych upodobań.

Oto najprostszy przykład:

import argparse 

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

args = parser.parse_args() 

co skutkuje:

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

This is my help 

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

Można zdefiniować wszystkie swoje argumenty argparse i ustawić komunikat pomocy dla każdego z nich. Wynikowe przefiltrowane/sprawdzone argumenty są zwracane przez parser.parse_args().

Powiązane problemy