2017-09-17 2 views
-2

Wie können Befehlszeilenargumente am besten in Variablen verarbeitet werden? Ich versuche, ein Python-Skript-Funktion wie diese zu haben:Python-Befehlszeilenargumente für Variablen und Eingabeüberprüfung

Python file.py 192.168.1.48 8080

Wenn keine Argumente eingegeben werden, sollte es die folgenden Druck -

Verbrauch: Python-Datei .py (IP-Adresse) (Port)

So weit ist hier mein Code. Ich habe bis jetzt noch keine Argumente für eine korrekte Verarbeitung erhalten. Bitte beachten Sie, dies ist lediglich ein Beweis für das Konzept. Ich versuche, dass das funktioniert, um ein anderes Skript zu entwickeln. Ich möchte, dass die Befehlszeilenargumente die Variablen ip und port unten mit der Eingabe des Benutzers füllen, und validiere die Eingabe als IP-Adresse für ip-Variable und Integer für Port, wenn möglich. Jede Hilfe wird sehr geschätzt:

import urllib2 
import ssl 
ip="192.168.1.48" 
port="8080" 



ctx = ssl.create_default_context() 
ctx.check_hostname = False 
ctx.verify_mode = ssl.CERT_NONE 

urllib2.urlopen("https://{0}:{1}".format(ip, port), context=ctx) 

Antwort

1

Ich benutze getopt. Es gibt eine andere Bibliothek namens argparse

Dieser Code ist aus der Dokumentation für getopt:

import getopt, sys 

def main(): 
    try: 
     opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="]) 
    except getopt.GetoptError as err: 
     # print help information and exit: 
     print str(err) # will print something like "option -a not recognized" 
     usage() 
     sys.exit(2) 
    output = None 
    verbose = False 
    for o, a in opts: 
     if o == "-v": 
      verbose = True 
     elif o in ("-h", "--help"): 
      usage() 
      sys.exit() 
     elif o in ("-o", "--output"): 
      output = a 
     else: 
      assert False, "unhandled option" 
    # ... 

    if __name__ == "__main__": 
     main() 

Für Ihren speziellen Fall aber könnten Sie einfach sys importieren und setzen
ip = sys.arv [1] Hafen = sys.argv [2]

Sie möchten wahrscheinlich eine Fehlerüberprüfung durchführen.

Verwandte Themen