Hallo!
Gibt es eine Möglichkeit, zu prüfen, ob eine Liste bereits existiert? Falls sie nicht existiert soll sie erstellt werden.
So wie es
l=os.access("Macros",os.F_OK) #Ordner und Datei erstellen
if l==False:
os.mkdir("Macros")
gibt, um nicht vorhandenen Odner zu erstellen.
Prüfen, ob Liste existiert
Meinst du wirklich Existieren oder willst du bloß prüfen ob die Liste befüllt ist?
Code: Alles auswählen
# Variante 1
try:
print(my_list)
except NameError:
print('Liste existiert nicht')
# Variante 2
if len(my_list) > 0:
print(my_list)
else:
print('Liste ist leer')
# Variante 2 (kürzer)
if my_list:
print(my_list)
else:
print('Liste ist leer')
@gahleitner: Wobei man dazu sagen sollte das ein `NameError` in der Regel ein Programmierfehler ist. In dem Falle würde man nicht prüfen ob eine Name existiert, denn entweder der existiert, oder man hat ein fehlerhaftes Programm und sollte den Fehler beheben statt den später im Programm irgendwie umgehen zu wollen.
Auch ist Dein gezeigter Quelltext für das Verzeichnis nicht wirklich „pythonisch“. In Python legt man einfach das Verzeichnis an und reagiert entsprechend auf eventuell dabei auftretende Ausnahmen. Das ist zudem sicherer/robuster, denn zwischen Test und Aktion bei Dir kann ja durchaus noch etwas passieren.
Auch ist Dein gezeigter Quelltext für das Verzeichnis nicht wirklich „pythonisch“. In Python legt man einfach das Verzeichnis an und reagiert entsprechend auf eventuell dabei auftretende Ausnahmen. Das ist zudem sicherer/robuster, denn zwischen Test und Aktion bei Dir kann ja durchaus noch etwas passieren.
Hatte das mal vor einigen Tagen durchprobiert, dann eine bessere Lösung gefunden. Doch so wäre es wohl zur Not auch gegangen, wenn Du nur wissen möchtest, ob eine Variable existiert, denke ich mir. Oder?
Code: Alles auswählen
def is_defined(var):
if var in globals() or var in locals():
return True
else:
return False
# Den Bezeichner als String abfragen
if is_defined("my_list"):
print("Ist True")
else:
print("Ist False")
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Also, ich mache das so:
Code: Alles auswählen
my_list = None
if not my_list:
my_list = NewList()
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
@gahleitner: Die Lösung ist doch relativ einfach. Du machst für die Listen keine Variablen, sondern trägst sie in ein Dictionary ein. Und nachher kannst Du abfragen, ob die Liste da drin ist.