Seite 1 von 1

Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 09:08
von HeinrichMeyer
Hallo : Wie kann ich Dateien Löschen ? (z.B. In einem PythonVerzeichnis)
Finde nirgend einen Löchbefehl) Danke.

Re: Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 09:23
von sparrow
Was ist denn ein "Python Verzeichnis"? Ich hoffe du meinst damit nicht, dass du Dateien aus dem Ordner löschen möchtest, in dem der Interpreter installiert ist. Das solltest du tunlichst nicht tun.

Ein pathlib.Path kennt unlink.

Re: Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 09:34
von noisefloor
Wie kann ich Dateien Löschen ?
Mit den Mittel, die dir das Betriebssystem deiner Wahl zur Verfügung stellt. Also z.B. einem Dateimanager deiner Wahl, mit Terminalbefehlen im OS deiner Wahl (z.B. `del` im Windowsterminal, `rm` in der PowerShell und div. Unix-Shells).

Aus einem Python-Skript heraus geht das programmatisch z.B. mit `remove` und `removedirs` aus dem os-Modul.

Gruß, noisefloor

Re: Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 11:16
von juergenkulow
Hallo HeinrichMeyer,

Code: Alles auswählen

# Lösche Datei - Beispiel unter Linux 
import os
os.remove("/tmp/zulöschen.dat")

Code: Alles auswählen

kulow@kulow-G73Jw:~$ ls /tmp/zu*
/tmp/zulöschen.dat
kulow@kulow-G73Jw:~$ python3 /tmp/LöscheDatei.py
kulow@kulow-G73Jw:~$ ls /tmp/zu*
ls: Zugriff auf '/tmp/zu*' nicht möglich: Datei oder Verzeichnis nicht gefunden
https://docs.python.org/3/library/os.html#os.remove

Re: Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 11:32
von noisefloor
@juergenkulow: der Python Code würde genau so unter Windows und MacOS funktionieren. An den beiden Zeilen ist nichts Linux-spezifisches.

Gruß, noisefloor

Re: Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 12:58
von noisefloor
Korrektur:
der Python Code würde genau so unter Windows und MacOS funktionieren.
Stimmt nicht, weil absolute Pfade verwendet werden. Was zumindest unter Win anders ist.

Gruß, noisefloor

Re: Dateien Löschen

Verfasst: Samstag 21. Juni 2025, 14:57
von DeaD_EyE
Bestimmte Pfade unterscheiden sich signifikant. Das muss man dann Kenntnisse über das jeweilige OS haben und/oder entsprechende Bibliotheken nutzen, die einem dabei helfen.

Könnte so z.B. aussehen.

Code: Alles auswählen

import platform
import os

from pathlib import Path


def file_from_temp(file: str | Path) -> Path:
    match platform.system():
        case "Linux":
            path = Path("/tmp/", file)
        case "Windows":
            path = Path(os.getenv("LOCALAPPDATA"), "Temp", file)
        case _ as unkown_os:
            raise RuntimeError(f"{unkown_os} is not supported")
            
    return path


# nur den Pfad zum Temp verzeichnis für Windows oder Linux.
p = file_from_temp("")


for file in p.iterdir():
    print(file)
Was noch fehlt: MacOS (ähnlich wie Linux/BSD), BSD-Deriviate und Android.

Es kommt halt darauf an, auf welchen Plattformen der Code laufen soll. Man muss nicht alles unterstützen.


PS: Unter Windows gibt es unterschiedliche Pfade für des Temp-Verzeichnisses, aber in %LOCALAPPDATA%\Temp packen die meisten Anwendungen ihre temporären Dateien hin.