Wissensdatenbank von GCSoft
>>
Wissensdatenbank
/
Python 3
Dateien
Daten aus einer Datei auslesen
Datei zum Lesen öffnen:
fobj = open("dateiname.txt", "r")
Das zeilenweise Lesen kann über eine for-Schleife erfolgen, da das Dateiobjekt zeilenweise iterierbar ist:
for line in fobj:
print(line)
Eine geöffnete Datei muss nach ihrer Verwendung explizit wieder geschlossen werden:
fobj.close()
Daten in eine Datei schreiben
Datei zum Schreiben öffnen:
fobj = open("dateiname.txt", "w")
Das zeilenweise Schreiben seht folgendermaßen aus:
fobj.write("{} {}\n".format(a, b))
Eine geöffnete Datei muss nach ihrer Verwendung explizit wieder geschlossen werden:
fobj.close()
Das Dateiobjekt erzeugen
open(filename, [mode, buffering, encoding, errors, newline])
mode
- "r": Datei wird ausschließlich zum Lesen geöffnet
- "w": Datei wird ausschließlich zum Schreiben geöffnet, eine bestehende Datei wird überschrieben
- "a": Datei wird ausschließlich zum Schreiben geöffnet, eine bestehende Datei wird erweitert
- "x": Datei wird ausschließlich zum Schreiben geöffnet, existiert die Datei schon, wird eine FileExistsError-Exception geworfen
- "r+", "w+", "a+", "x+": Datei wird zum Lesen und Schreiben geöffnet
- "rb", "wb", "ab", "xb", "r+b", "w+b", "a+b", "x+b": Datei wird im Binärmodus geöffnet
mode ist optional (Defaultwert ist "r").
encoding
Mit encoding kann das Encoding festgelegt werden, in dem die Datei gelesen bzw. geschrieben werden soll.
errors
Gibt an, wie mit Fehlern bei der Codierung von Zeichen im angegebenen Encoding verfahren werden soll.
Gültige Werte sind ignore und strict.
buffering
buffering steuert die Puffergröße.
newline
newline legt die Zeichen fest, die beim Lesen oder Schreiben der Datei als Newlinbe-Zeichen erkannt bzw. verwendet werden sollen.
Attribute und Methoden des Dateiobjekts
Attribute
- Dateiobjekt.name
- Dateiobjekt.encoding
- Dateiobjekt.errors
- Dateiobjekt.mode
- Dateiobjekt.newlines
Methoden
- Dateiobjekt.close(): Schließt bestehendes Dateiobjekt.
- Dateiobjekt.fileno(): Gibt Deskriptor der geöffneten Datei als ganze Zahl zurück.
- Dateiobjekt.flush(): Anstehende Schreiboperationen werden sofort ausgeführt.
- Dateiobjekt.isatty(): True, wenn das Dateiobjekt auf einem Datenstrom geöffnet wurde, der nicht an beliebiger Stelle
geschrieben oder gelesen werden kann.
- next(Dateiobjekt), Dateiobjekt.__next__(): Liest die nächste Zeile der Datei ein und gibt sie als String zurück.
- Dateiobjekt.read([size]): Liest size Bytes der Datei ein.
- Dateiobjekt.readline([size]): Liest eine Zeile der Datei ein.
- Dateiobjekt.readlines([sizehint]): Liest alle Zeilen und gibt sie in Form einer Liste von Strings zurück.
sizehint gibt an, bis wievielen Bytes ungefähr gelesen werden soll.
- Dateiobjekt.seek(offset, [whence]): Setzt die aktuelle Schreib-/Leseposition in der Datei auf offset.
- Dateiobjekt.tell(): Liefert die aktuelle Schreib-/Lesepositionin der Datei.
- Dateiobjekt.truncate([size]): Lösct in der Datei alle Daten, die hinter der aktuellen Position oder size Bytes stehen.
- write(str): Schreibt den Strinstr in die Datei.
- writelines(iterable): Schreibt mehrere Zeilen in die Datei, z.B. eine Liste von Strings.
Anm. zu whence von seek:
- 0: Anzahl Bytes relativ zum Dateianfang
- 1: Anzahl Bytes relativ zur aktuellen Schreib-/Leseposition
- 2: Anzahl Bytes relativ zum Dateiende