Dateien öffnen
Für die Arbeit mit Dateien in Python wird die eingebaute Funktion open() verwendet. Die grundlegende Syntax:
file = open('filename.txt', 'mode')Hauptöffnungsmodi:
'r'— Lesen (read). Die Datei muss vorhanden sein'w'— schreiben (write). Erstellt eine neue Datei oder überschreibt eine vorhandene'a'— Anhängen (append). Fügt Daten am Ende der Datei hinzu'r+'— Lesen und Schreiben'b'- Binärmodus (z. B.'rb'oder'wb')
Dateien lesen
Lesen des gesamten Inhalts:
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)Zeilenweise lesen:
with open('example.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip()) # strip() entfernt ZeilenumbruchzeichenLesen Sie alle Zeilen in der Liste:
with open('example.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()
print(lines)Aufzeichnung in Dateien
Textaufzeichnung (Dateiüberschreibung):
with open('output.txt', 'w', encoding='utf-8') as file:
file.write('Hello world!\n')
file.write('This is the second line.')Hinzufügen von Text am Ende der Datei:
with open('output.txt', 'a', encoding='utf-8') as file:
file.write('\nAdditional line')Eintrag der Zeilenliste:
lines = ['First line\n', 'Second line\n', 'Third line\n']
with open('output.txt', 'w', encoding='utf-8') as file:
file.writelines(lines)Konstruktion mit
Die Verwendung von with ist eine bewährte Methode beim Arbeiten mit Dateien. Sie schließt die Datei automatisch, nachdem der Codeblock ausgeführt wurde, auch wenn ein Fehler aufgetreten ist.
Ohne with (nicht empfohlen):
file = open('example.txt', 'r')
content = file.read()
file.close() # Vergessen Sie nicht, die Datei zu schließen!Mit (empfohlen):
with open('example.txt', 'r') as file:
content = file.read()
# Die Datei wird nach dem Verlassen des Blocks automatisch geschlossenArbeiten mit Dateipfaden
Verwenden Sie das Modul pathlib, um bequem mit Pfaden zu arbeiten:
from pathlib import Path
# Erstellen eines Pfades
file_path = Path('folder') / 'subfolder' / 'file.txt'
# Überprüfung der Existenz
if file_path.exists():
print('File exists')
# Datei lesen
content = file_path.read_text(encoding='utf-8')
# Aufzeichnung in Datei
file_path.write_text('New content', encoding='utf-8')
Fehlerbehandlung
Beim Arbeiten mit Dateien ist es wichtig, mögliche Fehler zu behandeln:
try:
with open('nonexistent.txt', 'r', encoding='utf-8') as file:
content = file.read()
except FileNotFoundError:
print('File not found')
except PermissionError:
print('No access rights to the file')
except Exception as e:
print(f'An error occurred: {e}')Arbeiten mit CSV-Dateien
Python verfügt über ein integriertes Modul csv für die Arbeit mit CSV-Dateien:
import csv
# CSV-Datei lesen
with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row)
# CSV-Aufzeichnung
data = [
['Name', 'Age', 'City'],
['Alexey', '25', 'Moscow'],
['Maria', '30', 'St. Petersburg']
]
with open('output.csv', 'w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)Arbeiten mit JSON-Dateien
Für die Arbeit mit JSON wird das Modul json verwendet:
import json
# JSON lesen
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)
print(data)
# JSON-Eintrag
data = {
'name': 'Ivan',
'age': 28,
'skills': ['Python', 'JavaScript']
}
with open('output.json', 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)Praktische Beispiele
Zählen der Anzahl der Zeilen in einer Datei:
with open('example.txt', 'r', encoding='utf-8') as file:
line_count = sum(1 for line in file)
print(f'Number of lines: {line_count}')Suche nach einem Wort in der Datei:
search_word = 'Python'
with open('example.txt', 'r', encoding='utf-8') as file:
for line_number, line in enumerate(file, 1):
if search_word in line:
print(f'Found in line {line_number}: {line.strip()}')Datei kopieren:
with open('source.txt', 'r', encoding='utf-8') as source:
with open('destination.txt', 'w', encoding='utf-8') as destination:
destination.write(source.read())Nützliche Tipps
Geben Sie immer die Kodierung an. Verwenden Sie encoding='utf-8' für die korrekte Arbeit mit dem russischen Text.
Verwenden Sie with, um Dateien automatisch zu schließen. Dies verhindert Ressourcenlecks und Datenverlust.
Behandeln Sie Ausnahmen. Dateien sind möglicherweise nicht vorhanden, gesperrt oder Sie haben möglicherweise keine Zugriffsrechte.
Überprüfen Sie, ob Dateien vorhanden sind. Stellen Sie vor dem Lesen sicher, dass die Datei existiert, indem Sie Path.exists() oder die Ausnahmebehandlung verwenden.
Seien Sie vorsichtig mit großen Dateien. Die Methode read() lädt die gesamte Datei in den Speicher. Bei großen Dateien ist es besser, zeilenweise zu lesen.
Befund
Das Arbeiten mit Dateien in Python ist einfach und intuitiv. Grundprinzipien: Verwenden Sie die Konstruktion with, vergessen Sie nicht die Fehlerbehandlung und wählen Sie den richtigen Dateiöffnungsmodus. Mit diesem Wissen sind Sie bereit, effektiv mit Dateien in Ihren Projekten zu arbeiten!
Kodik ist eine freundliche Entwicklergemeinschaft, in der jeder Programmieren lernen, Erfahrungen teilen und Unterstützung von Gleichgesinnten erhalten kann. Wir haben einen Raum geschaffen, in dem sich Anfänger wohlfühlen, Fragen zu stellen, und erfahrene Programmierer ihr Wissen gerne teilen und beim Wachsen helfen.
Schließe dich dem Kodik an — Hier ist das Programmieren einfacher und die Ausbildung findet in einer Atmosphäre der gegenseitigen Unterstützung und Inspiration statt!
