python
open(file, mode='r', encoding=None, newline=None)
| Parameter | Bedeutung |
|---|---|
file |
Pfad als String oder Path |
mode |
'r' lesen (Standard), 'w' schreiben und vorhandenen Inhalt löschen, 'a' anhängen, 'x' neu anlegen (Fehler, falls vorhanden). Zusatz 'b' für Binärdaten ('rb', 'wb') |
encoding |
Zeichenkodierung. Gib immer 'utf-8' an, sonst hängt das Ergebnis vom System ab |
newline |
Zeilenende-Behandlung. Bei CSV-Dateien newline='' |
python
# Alles auf einmal lesen
with open('daten.txt', encoding='utf-8') as f:
text = f.read() # ein String
# Zeilenweise lesen (speicherschonend, auch bei riesigen Dateien)
with open('daten.txt', encoding='utf-8') as f:
for zeile in f:
print(zeile.rstrip('\n')) # jede Zeile enthält am Ende noch den Zeilenumbruch
# Schreiben
with open('ausgabe.txt', 'w', encoding='utf-8') as f:
f.write('Erste Zeile\n') # write fügt keinen Zeilenumbruch hinzu
f.writelines(['a\n', 'b\n']) # mehrere Strings
print('Noch eine Zeile', file=f) # print kann auch in eine Datei schreiben
| Methode | Wirkung |
|---|---|
f.read(size=-1) |
Liest alles oder size Zeichen |
f.readline() |
Liest eine Zeile |
f.readlines() |
Liest alle Zeilen als Liste |
f.write(text) |
Schreibt einen String, liefert die Anzahl Zeichen |
f.writelines(liste) |
Schreibt eine Folge von Strings |
f.seek(offset) |
Springt an eine Position |