Klammern einer Datei entfernen

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
John Fischer
User
Beiträge: 6
Registriert: Freitag 29. Mai 2020, 14:46

Guten Abend,
ich versuche grade zum ersten mal mit Dateien zu arbeiten und hab ein Problem mit den Klammern, eigentlich funktioniert alles, aber ich müsste beim umwandeln in einen String eines der Klammer Paare entfernen, da mein Programm das sonst nicht verarbeitet bekommt.
Hat irgendjemand eine Idee wie ich das Klammerpaar wegbekommen könnte?

L = [['aaa','bbb'], ['bbb','ccc'], ['ddd','ggg']] #Die Liste wird in einen String umgewandelt und in der Datenbank gespeichert
file2 = open("Datenbank", "w")
L = str(L)
file2.write(L)
file2.close()


file3 = open("Datenbank", "r") #Der gespeicherte String wird einmal ausgegeben
print(file3.read())

file3.close()

file1 = open("Datenbank", "r") #Der String wird wieder in eine Liste zurück umgewandelt
L = file1.read()
print(L)
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@John Fischer: Dein Problem liegt gleich in der allerersten Zeile: Man speichert keine Zeichenkettenrepresentation von Listen in Dateien. Dafür sind die nicht gedacht. Und beim letzten `open()` stimmt der Kommentar nicht, denn da wird nichts in eine Liste zurück umgewandelt, da wird einfach nur eine Zeichenkette gelesen.

Verwende ein sinnvolles Dateiformat um die Daten zu speichern. JSON bietet sich hier an, da bleiben dann auch die Zahlen in den Listen als Zahlen erhalten. Python hat dafür das `json`-Modul in der Standardbibliothek.

Beim öffnen von Textdateien sollte man zudem immer eine Kodierung angeben. Bei JSON wäre das UTF-8, und auch sonst ist das eine sinnvolle Entscheidung diese Kodierung zu verwenden.

Wo möglich sollte man Textdateien mit der ``with``-Anweisung öffnen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
John Fischer
User
Beiträge: 6
Registriert: Freitag 29. Mai 2020, 14:46

Danke für die Antwort, ich werde mal versuchen mich über json zu informieren, ich bin noch ziemlicher Anfänger und wir haben nur die Aufgabe bekommen diese Liste in einer externen Textdatei zu speichern. Alles was ich dazu gefunden hab war mit Dateien und dem open Befehl zu arbeiten.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@John Fischer: Was du haat ist ja nicht nur eine Liste, sondern elne Liste deren Elemente weitere.Listen sind.
Man könnte die Informationen natürlich auch in eine.Datei speichern, ohne JSON zu verwenden, aber dann müsstest du selbst entsprechende Logik entwerfen, sie diese in ein Format in der Datei überführt werden - und wie wieder zurück.

Das ist alles andere als trivial.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast ja einer tabellenartige Struktur. Da böte auch noch das csv-Modul zum Lesen und Schreiben von csv-Dateien an. Das bist du aber selbst dafür verantwortlich, dass aus Zahlen beim Lesen wieder Zahlen werden. Json ist da deutlich bequemer.
Antworten