Wie kann man Variablen aus einer python Datei nutzen?
def fertig_Anmelden():
Name_der_Datei = Name_der_Gruppe_eingeben.get() + ".py"
Check_ob_eine_Datei_da_ist(Name_der_Datei)
if Dateicheck == True:
open(Name_der_Datei, "r")
if Name_der_Schule_eingeben == Name_der_Schule and Name_der_Gruppe_eingeben == Name_der_Gruppe and Passwort_eingeben == Passwort and Name_eingeben == Name:
Button_fertig()
Anmelden_Fenster.destroy()
else:
Label(text = "Die Daten sind leider nicht korrekt.").place(x = 500, y = 120)
Label(text = "Bitte überprüfen Sie ihre Eingaben oder registrieren Sie sich zuerst.").place(x = 500, y = 150)
else:
Label(text = "Dieses Konto/Dieser Account besteht noch nicht.")
Label(text = "Bitte überprüfen Sie ihre Eingaben oder registrieren Sie sich zuerst.")
Button_fertig_regiestrieren = Button(Anmelden_Fenster, text = "Fertig", command = fertig_Anmelden).place(x = 1000, y = 300)
Es soll sich jemand anmelden können und es gibt eine Datei mit den Variablen. Nun wenn ich "open()" benutze, kann ich die Variablen immer noch nicht benutzen. Kann mir jemand sagen, wie ich da die Variablen benutzen kann? Liebe Grüße Alex950
1 Antwort
Hey, bin kein Python Profi aber damit du variablen bzw. den Code aus einer Datei benutzen kannst, muss der Python Interpreter das interpretieren. Mit open() öffnest du die Datei nur und bekommst text zurück. Du hast ein paar Optionen:
- eval() benutzen, um deinen text interpretieren zu lassen und das Ergebnis zu bekommen.
https://pythongeeks.org/python-eval-function/
- Deine Datei dynamisch als Module importen
https://www.geeksforgeeks.org/how-to-dynamically-load-modules-or-classes-in-python
Laut Python Docs solltest du eher import_module aus import_lib verwenden. Also wenn du eine Variable namens test in mein_modul.py hast, kannst du das so benutzen.
mein_modul.py
test=1
main.py
from importlib import import_module
file = import_module("mein_modul")
print(file.test)
Aber auch hier kann ich keine Variable importen. Das heißt statt in "" ohne "" also miit Variable.
Oh so meinst du das, wäre das nicht einfach import_module(f"{mein_modul}")
Ichc habe das mit den Modulen bereits versucht. Dann stoße ich aber darauf, das ich keine Variable importen kann:
Modul = MeinModul
from Modul import *
geht nicht, ich muss:
from MeinModul import *
schreiben. Dass kann ich aber nicht, denn es soll abgefragt werden, welche Datei geimportet wird.
Gib es eine Möglichkeit, wie ich das verhindern kann?
Und das mit "eval()" habe ich nicht ganz gecheckt.