2016-11-16 5 views
0

ich die Befehlszeilenargumente aus dem folgenden Code entfernen möchten, und geben Argumente durch CodeÄndern Funktionsargumente in Python

# Handle arguments 
parser = argparse.ArgumentParser() 
parser.add_argument('--target', required=True) 
parser.add_argument('--policy', required=True) 
parser.add_argument('--name', required=True) 
parser.add_argument('--insecure', action="store_true") 
parser.add_argument('--ca_bundle') 
args = parser.parse_args() 

# Log in 
scan = rest.Scanner(url=_url, login=login, password=password, insecure=args.insecure, ca_bundle=args.ca_bundle) 

# Set policy that should be used 
scan.policy_set(name=args.policy) 

Ich möchte den Code konvertieren, so dass ich Argumente von Code anstelle von Befehlszeile übergeben können . Eine Sache wie diese

a=target 
b=policyname 
c=scan_name 
d=xyz 
args=(a,b,c,d) 
scan = rest.Scanner(url=_url, login=login, password=password, insecure=args.d, ca_bundle=args.ca_bundle) 

scan.policy_set=(name=args.b) 

Wie kann dies getan werden?

+0

Nur tun, was Sie geschrieben haben? anstatt für "args" zu verwenden, benutze 'dict' though. – Marcin

+0

Nun, es ist verflixt explizit, dass Befehlszeile args erwartet ... Sie brauchen nicht das 'parser' Objekt überhaupt, wenn Sie diese Schnittstelle nicht verwenden wollen. Wickeln Sie es stattdessen in eine Funktion. – Anonymous

+0

Können Sie bitte ein Codebeispiel bereitstellen? – Airbourne

Antwort

0

Geben Sie einfach die Parameter direkt.

scan = rest.Scanner(url=a,password=b,insecure=true,.....) 
Verwandte Themen