2012-06-07 10 views
25

Próbuję się nauczyć, jak korzystać z modułu Pythona argparse. Obecnie mój skrypt Pythona jest:Wydrukuj przykład użycia programu z modułem argparse

parser = argparse.ArgumentParser(description='My first argparse attempt', 
           add_help=True) 
parser.add_argument("-q", action ="store", dest='argument', 
        help="First argument") 
output = parser.parse_args() 

i daje wyjście jak:

usage: test.py [-h] [-q ARGUMENT] 

My first argparse attempt 

optional arguments: 
    -h, --help show this help message and exit 
    -q ARGUMENT First argument 

Teraz, pozwala przypuszczać chcę mój -h or --help argument wydrukować usage example również. Podobnie jak

Usage: python test.py -q "First Argument for test.py" 

Moim celem jest, aby wydrukować powyższy przykład użycia wraz z zawartością domyślnej -h argumentu, dzięki czemu użytkownik może uzyskać podstawowe pomysł jak użyć skryptu test.py Pythona. To jest ta wbudowana funkcja w module argparse. Jeśli nie, to jaki jest właściwy sposób podejścia do tego problemu.

Odpowiedz

34

Użyj parser.epilog, aby wyświetlić tekst po wygenerowanym tekście -h.

parser = argparse.ArgumentParser(
    description='My first argparse attempt', 
    epilog='Example of use') 

output = parser.parse_args() 

drukuje:

My first argparse attempt 

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

Example of use 
+0

Dzięki za odpowiedź. – RanRag

+17

@Noob - Zwróć uwagę, że spacja zostanie usunięta z twojego opisu i epilogu (co często nie jest dobre w przypadku "Przykłady użycia" .Aby zezwolić, że chcesz 'argparse.RawDescriptionHelpFormatter' (http://docs.python.org /dev/library/argparse.html#argparse.RawDescriptionHelpFormatter) – mgilson

+1

Czy istnieje sposób użycia argparse.RawDescriptionHelpFormatter tylko do epilogu, a nie do opisu? Chcę, aby opis był zawijany automatycznie, ale chcę zająć się formatowanie epilogu. – user2015487