2017-01-27 2 views
1

Ich bin mit dem folgenden CodePython print_usage und print_help Druck nicht optionale Argumente

parser = argparse.ArgumentParser() 

if len(sys.argv)==1: 
    parser.print_help() 
    sys.exit(1) 


group = parser.add_mutually_exclusive_group() 

group.add_argument(
     "-v","--version", 
     dest="ver", 
     action='store_true' 
) 
group.add_argument(
     "-p","--pin", 
     dest="pin", 
) 

args = parser.parse_args() 

Aber die Argumente sind nie aufgeführt. Wenn kein Argument übergeben wird, möchte ich die gleiche Ausgabe wie wenn das Argument --help übergeben wird.

Ich habe print_help und print_usage ausprobiert, sie funktionieren gleich. Ich habe das Gefühl, dass die Argumente, die ich erwarte (es gibt mehr als das hier gezeigte, ich versuche ein wenig Platz zu sparen) nicht richtig erkannt werden, da -h als optionales Argument angezeigt wird, während die anderen sind nicht.

Ich hoffe, ich habe mich klar erklärt, habe seit zwei Tagen gesucht und kann keine Lösung finden.

+0

ich nicht ganz so klar machen. Wenn ich das Programm ohne Argumente aufruft, wird -h als optionales Argument aufgeführt, die anderen jedoch nicht. –

Antwort

1

Du print_help() zu früh anrufen, versuchen:

parser = argparse.ArgumentParser() 

group = parser.add_mutually_exclusive_group() 

group.add_argument(
     "-v","--version", 
     dest="ver", 
     action='store_true' 
) 
group.add_argument(
     "-p","--pin", 
     dest="pin", 
) 

if len(sys.argv)==1: 
    parser.print_help() 
    sys.exit(1) 

args = parser.parse_args() 
+0

Das funktioniert perfekt, vielen Dank. –

Verwandte Themen