2012-04-02 11 views
-3

schreiben Sie ein Skript, das zwei optionale boolesche Argumente, "- verbose," und "--live", und zwei erforderliche String-Argumente, "Basis" und "Muster". Bitte richten Sie die Kommandozeilenverarbeitung mit argparse ein.argparse coding issue

Dies ist der Code, den ich bisher für die Frage habe, ich weiß, dass ich in der Nähe bin, aber etwas ist nicht ganz richtig. Jede Hilfe wird sehr geschätzt. Vielen Dank für das schnelle Feedback.

+0

Was genau ist das Problem? – dm03514

+0

Ich vermute, dass es vielleicht keinen gibt, das ist mein 10. Versuch, das oben genannte Problem zu lösen. sieht mein Code für Sie korrekt aus? Ich war mir nicht sicher, ob meine Druckfunktion korrekt war oder ob ich die 4 verschiedenen add_arguments brauchte. –

+0

@Riaz Rizvi kannst du mich unter [email protected] erreichen. Ich habe ein paar andere Dinge, die ich gerne mit dir besprechen würde. Vielen Dank für Ihre Zeit –

Antwort

0

Die Zeichenfolgenargumente sind standardmäßig nicht erforderlich. Sie müssen dies also angeben. Auch die print-Anweisung, die die Argumente verwendet, ist falsch.

#!/usr/bin/python 
import argparse 

if __name__=="__main__": 
    parser = argparse.ArgumentParser(description='eg $python myargs.py --base arg1 --pattern arg2 [--verbose] [--live]') 
    parser.add_argument('--base', required=True, type=str) 
    parser.add_argument('--pattern', required=True, type=str) 
    parser.add_argument('--verbose', action='store_true') 
    parser.add_argument('--live', action='store_true') 

    args = parser.parse_args() 

    print "args.base=" + str(args.base) 
    print "args.pattern=" + str(args.pattern) 
    print "args.verbose=" + str(args.verbose) 
    print "args.live=" + str(args.live) 

die #!/Usr/bin/python an der Spitze das Skript ermöglicht direkt aufgerufen werden, obwohl Python dort befinden müssen (zu bestätigen, geben Sie $ welche Python), und Sie müssen die Datei auf have execute permission ($ chmod + x myargs.py)