Python Code zur Laufzeit einfügen und ausführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Peter1977
User
Beiträge: 90
Registriert: Mittwoch 4. September 2013, 14:59

Hallo,

Kann man einen Python Code zu einem Python Programm zur Laufzeit hinzufügen und ausführen?

Der Plan ist folgender

in der GUI gibt es ein Text Eingabe Fenster wo z.b. Folgender Code eingegeben wird

Code: Alles auswählen

SQL=""
for i in range(1,11,1):
    for k in range(1,6,1):
        if len(str(k))==1:
            k2="0" + str(k)
        else:
            k2=str(k)
        if len(str(i))==1:
            i2="0" + str(i)
        else:
            i2=str(i)
        Wert="M" + str(i2) + "-" + str(k2)
        if len(SQL)==0:
            SQL="INSERT INTO tabele1 (spalte1) VALUES ('" + Wert + "');"
        else:
            SQL=SQL + "INSERT INTO tabele1 (spalte1) VALUES ('" + Wert + "');"

print ("SQL:")
print (SQL)
        
und dann ausgeführt werden kann. Es dient zum einmaligen Großflächigen anlegen von 100 - 200 Plätzen

Peter
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@Peter1977: es gibt Stringformatierung in Python, da kann man auch die Anzahl Stellen, die eine Zahl haben soll angeben. Strings mit '+' zusammenzusetzen ist ein Anti-Pattern.
Dabei kommt dann ungefähr das heraus:

Code: Alles auswählen

SQL = '\n'.join("INSERT INTO tabele1 (spalte1) VALUES ('M%02d-%02d');" % (i, k)
                for i in range(1,11) for k in range(1,6))
print("SQL:")
print(SQL)
Warum sollte jemand Pythoncode in eine GUI eingeben wollen? Entweder, derjenige kann Python, dann weiß er auch, wie man eine Pythonkonsole bedient oder eben nicht, dann will er etwas komfortableres als kryptischen Text eingeben zu müssen. Was Du suchst ist exec.
Antworten