2017-07-23 7 views
0

Ich möchte ein Argument übergeben und von ihm eine Bedingung machen, folgen Sie dem Beispiel unten:lesen und vergleichen Argument mit argv - Python

import argparse 

# construct the argument parse and parse the arguments 
ap = argparse.ArgumentParser() 
ap.add_argument("--database", required=True, help="path to the 
database images") 
args = vars(ap.parse_args()) 

if (args == "mnist"): 

    print('Hello!') 

Und dann im Terminal I mit ein:

python argv.py --database mnist 

Aber mein Code tut einfach nichts. Was mache ich falsch? Wie könnte ich das richtig machen?

+0

Was drucken tut '(args)' Sie geben? –

+0

@PeterWood, ** {'Datenbank': 'Mnist'} ** – QuestionsStackOverflow

+0

'Wenn Args ['Datenbank'] ==" Mnist ":' –

Antwort

3

Aufruf von vars auf dem Argaparse NameSpace gibt Ihnen ein Diktat. Sie sollten das database Argument nun analysiert als Key 'database' im dict zurück von vars vergleichen:

if args['database'] == "mnist": 
    print('Hello!') 
+0

Dies kann aufgrund eines typologischen/nonrepro-Fehlers geschlossen werden ... sollte es beantwortet werden? –

+1

Das hat bei mir funktioniert. Vielen Dank! – QuestionsStackOverflow

+2

https://stackoverflow.com/help/someone-answers – phd