2016-03-30 15 views
0

Ich schreibe ein Python 3-Skript mit Befehlszeilenargumenten und möchte einen der Parameter als Variable verwenden. Hier ist die Erklärung des Parameters:Variablen in der LDAP-Suche

parser.add_argument('-p', '--project', help='Project name', type=str, required=True) 
args = parser.parse_args() 

Ich mag würde für die Projektnamen in LDAP mit diesem Befehl suchen (die cn = args.project ist der relevante Teil):

conn.search("ou=Projects,dc=irf,dc=local", 2, "(&(objectClass=groupOfNames)(cn=args.project))") 

Aber es funktioniert nicht, weil die Funktion args.project nicht als Variable betrachtet, so dass sie den Eintrag nicht findet. Ich habe bereits viele Variationen versucht, einschließlich "& args.project &", aber nichts hat funktioniert.

Ich würde wirklich schätzen, wenn mir jemand helfen könnte.

Antwort

0

Python ersetzt Ihre Variable nicht automatisch, wenn Sie die Zeichenfolge nicht explizit formatieren. Verwenden Sie stattdessen den folgenden Code:

conn.search("ou=Projects,dc=irf,dc=local", 2, "(&(objectClass=groupOfNames)(cn={args.project}))".format(**locals()))