CodeGym /Kurse /Python SELF DE /Arbeiten mit Dateien auf der Festplatte

Arbeiten mit Dateien auf der Festplatte

Python SELF DE
Level 21 , Lektion 5
Verfügbar

6.1 Arbeiten mit Dateien

Python bietet viele eingebaute Funktionen und Module zum Arbeiten mit Dateien und Verzeichnissen. Die Hauptoperationen werden mit den eingebauten Modulen os, shutil und anderen durchgeführt.

Drei Hauptoperationen mit Dateien:

  • Kopieren
  • Verschieben
  • Löschen

Für diese Aufgaben ist das Modul shutil perfekt geeignet.

Datei kopieren


import shutil

shutil.copy('source.txt', 'destination.txt')
        

Datei verschieben


import shutil

shutil.move('source.txt', 'destination.txt')
        

Datei löschen


import os

os.remove('example.txt')
        

Einfacher geht's nicht.

6.2 Überprüfen der Existenz einer Datei

Oft muss man überprüfen, ob eine bestimmte Datei existiert oder nicht. Dafür hat das Modul os eine spezielle Methode — exists().

Überprüfung der Existenz einer Datei


import os

if os.path.exists('example.txt'):
    print("Datei existiert")
else:
    print("Datei existiert nicht")
    # Wenn die Datei nicht existiert, führt das Programm die im else-Block beschriebenen Aktionen aus.
    # Zum Beispiel kann man eine Warnung ausgeben, eine neue Datei erstellen oder das Programm beenden.

        

Wenn die Datei nicht existiert, kann das Programm dies mit Bedingungen behandeln oder eine Ausnahme werfen.

6.3 Überprüfung des Objekttyps: Datei oder Verzeichnis

Oft muss man überprüfen, ob ein Objekt eine Datei oder ein Verzeichnis ist. Zum Beispiel, wenn man den gesamten Inhalt eines Verzeichnisses liest und Dateien anders als Verzeichnisse verarbeiten muss.

Für solche Fälle gibt es zwei spezielle Methoden — isdir(), die prüft, ob ein Objekt ein Verzeichnis ist, und isfile(), die prüft, ob ein Objekt eine Datei ist.

Überprüfung, ob es ein Verzeichnis ist oder nicht


if os.path.isdir('example_directory'):
    print("Es ist ein Verzeichnis")
else:
    print("Es ist kein Verzeichnis")
        

Überprüfung, ob es eine Datei ist oder nicht


if os.path.isfile('example_file'):
    print("Es ist eine Datei")
else:
    print("Es ist keine Datei")
        

Das sind sehr nützliche Funktionen, die du häufiger verwenden wirst, als du denkst. :)

6.4 Arbeiten mit Pfaden

Das Modul os hat ein Untermodul os.path, das nützliche Funktionen für die Arbeit mit Dateien und Verzeichnissen enthält. Hier sind einige davon:

Erhalten der Dateierweiterung

Die Funktion splitext() teilt den Dateinamen in zwei Teile und gibt eine Liste mit zwei Elementen zurück: Name und Erweiterung.


import os.path

# Erhalten der Dateierweiterung
file_path = 'example.txt'
file_extension = os.path.splitext(file_path)[1]
print(f"Dateierweiterung: {file_extension}")
        

Erhalten des Dateinamens ohne Erweiterung


import os.path

# Erhalten des Dateinamens ohne Erweiterung
file_path = 'example.txt'
file_name = os.path.splitext(os.path.basename(file_path))[0]
print(f"Dateiname ohne Erweiterung: {file_name}")
        

Erhalten des Dateinamens aus dem Pfad

Die Funktion basename() gibt nur den Dateinamen zurück und schneidet den gesamten Pfad ab.


import os.path

# Erhalten des Dateinamens aus dem Pfad
file_path = '/path/to/example.txt'
file_name = os.path.basename(file_path)
print(f"Dateiname: {file_name}")
        

Erhalten des Verzeichnisses aus dem Pfad

Ebenso einfach ist es, nur das Verzeichnis aus einem Dateinamen zu erhalten, mithilfe der Funktion dirname().


import os.path

# Erhalten des Verzeichnisses aus dem Pfad
file_path = '/path/to/example.txt'
directory = os.path.dirname(file_path)
print(f"Verzeichnis: {directory}")
        

Zusammenfügen von Pfaden

Wenn du ein separates Verzeichnis und einen separaten Dateinamen hast, kannst du den vollständigen Pfad zu dieser Datei erhalten.


import os.path

# Zusammenfügen von Pfaden
directory = '/path/to'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Vollständiger Pfad: {full_path}")
        

6.5 Plattformunabhängige Pfade

Beim Arbeiten mit Pfaden ist es wichtig, die Unterschiede zwischen den Betriebssystemen zu berücksichtigen. Pfadtrennzeichen können unterschiedlich sein, und Code, der auf einer Plattform funktioniert, funktioniert möglicherweise nicht auf einer anderen. Um Probleme beim Portieren von Code zwischen verschiedenen Betriebssystemen zu vermeiden, verwenden Sie die Funktionen os.path.join(), os.path.abspath() und os.path.dirname(), die Kompatibilität mit verschiedenen Plattformen gewährleisten.

Zum Beispiel:


import os

# Zusammenfügen von Pfaden plattformunabhängig
directory = 'some_directory'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Vollständiger Pfad: {full_path}")
        

Erhalten des absoluten Pfads

Wenn du nur den Pfad relativ zum aktuellen Arbeitsverzeichnis hast, aber ihn in einen absoluten Pfad umwandeln möchtest, gibt es dafür die Funktion abspath().


import os.path

# Erhalten des absoluten Pfads
relative_path = 'example.txt'
absolute_path = os.path.abspath(relative_path)
print(f"Absoluter Pfad: {absolute_path}")
        

Wichtig! Verwende immer systemeigene Funktionen beim Arbeiten mit Pfaden, da dein Code auf einem anderen Betriebssystem ausgeführt werden könnte, wo der Dateitrennzeichen nicht \, sondern / ist, oder wo «:» in Pfaden verboten sind oder etwas anderes.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION