Hallo,
Ich suche die ganze Zeit schon nach einer Möglichkeit in meinem Programmcode eine Art autosave zu hinterlegen. Mein Programm bearbeitet Listen und ersetzt Werte in diesen. Jedoch werden alle nach dem schließen und erneut öffnen der Datei(.py) auf den Ursprungswert zurückgesetzt. Aktuell führe ich die Datei über PyCharm CE aus!
Wäre super, wenn das Programm nach jedem Suchlauf der for-Schleife oder bearbeiten der Listen Automatisch speichert.
Hoffe, dass mir hier jemand helfen kann!
Mit freundlichen Grüßen
Marco
Code zum speichern des Pythoncodes nach bearbeiten einer Liste
- __blackjack__
- User
- Beiträge: 13919
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@LiiNKSYS: Das wäre IMHO nicht so toll. Wenn Du Werte speichern willst, dann speichere Werte. Nicht im Programm sondern als externe Datei(en). Je nach dem was die Liste(n) enthalten könnte das `json`-Modul hier sinnvoll sein.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
Ich zeige mal die Listen aus dem Code. Sind aktuell nur zum Testen und wenn alles läuft, kommen die Richtigen Werte rein.
Teilenummer = ["000000000", "000000001", "000000002", "000000003", "000000004", "000000005"]
Lagerort = ["M000", "M001", "M002", "M003", "M004", "M005",]
Beschreibung = ["Blindniet", "Schraube M8", "Zange", "Schraubendreher", "Hammer", "Ball"]
Bestand = [1, 2, 3, 4, 5, 6]
Wie könnte ich es am besten umsetzen diese Listen zu speichern und auch Änderungen direkt in den Listen zu übernehmen.
Ich bin leider noch nicht so fit was die Umsetzung mit externen Daten im Code betrifft.
Teilenummer = ["000000000", "000000001", "000000002", "000000003", "000000004", "000000005"]
Lagerort = ["M000", "M001", "M002", "M003", "M004", "M005",]
Beschreibung = ["Blindniet", "Schraube M8", "Zange", "Schraubendreher", "Hammer", "Ball"]
Bestand = [1, 2, 3, 4, 5, 6]
Wie könnte ich es am besten umsetzen diese Listen zu speichern und auch Änderungen direkt in den Listen zu übernehmen.
Ich bin leider noch nicht so fit was die Umsetzung mit externen Daten im Code betrifft.
Das ist ein klassischer Anwendungsfall für Wörterbücher und somit auch für das JSON-Format. Deine Variablennamen sind dabei halt die Schlüssel. Bist du schon soweit, dass du mit Wörterbüchern (dict) umgehen kannst?LiiNKSYS hat geschrieben: ↑Freitag 30. Dezember 2022, 18:30 Teilenummer = ["000000000", "000000001", "000000002", "000000003", "000000004", "000000005"]
Lagerort = ["M000", "M001", "M002", "M003", "M004", "M005",]
Beschreibung = ["Blindniet", "Schraube M8", "Zange", "Schraubendreher", "Hammer", "Ball"]
Bestand = [1, 2, 3, 4, 5, 6]
Du hättest dann keine einzelnen Listen mehr, sondern ein Gesamtliste, wo der Inhalt des Lagers mit Wörterbüchern definiert wird:
Code: Alles auswählen
[{"Nr": "00007", "Platz": "M004", "Name": "Schraube M8", "Bestand": 42}, ...]
Zuletzt geändert von snafu am Freitag 30. Dezember 2022, 18:42, insgesamt 1-mal geändert.
Ich müsste es mir nochmal anschauen, aber an sich sollte das kein Problem sein.
Dann funktioniert die Index-Methode doch nicht mehr in den Listen oder?
Ich rufe über den Index der Teilenummer in den Listen am gleich Index dann die dazugehörigen Daten in Lagerort. Bestand usw.
Dann funktioniert die Index-Methode doch nicht mehr in den Listen oder?
Ich rufe über den Index der Teilenummer in den Listen am gleich Index dann die dazugehörigen Daten in Lagerort. Bestand usw.
Den Index brauchst du dann nur einmalig, weil er das jeweilige Wörterbuch aus der Gesamtliste holt. Willst du dann eine bestimmte Kategorie abfragen, dann etwa so für den Bestand des fünften Element deines Inventars: ``print(inventar[4]["Bestand"])``.
In Python fragt man aber bevorzugt die Elemente direkt ab, ohne Index:
In Python fragt man aber bevorzugt die Elemente direkt ab, ohne Index:
Code: Alles auswählen
for element in inventar:
print(element["Name"], element["Bestand"], sep="\t\t")