Seite 1 von 1
os.path.join linux-Pfade UND Windows-Pfade generieren ...
Verfasst: Dienstag 28. Oktober 2025, 10:05
von drnicolas
os.path.joind kann mir einen kompletten pfad generieren - funktioniert.
Ich habe gelernt, dass unter Windows ein anderer Pfad generiert wird als unter Linux.
Mein Skript läuft unter Linux;
ich benötige nun für eine Fehler-Mail SOWOHL den linux-Pfad als auch den Windows-pFad (die Datei liegt auf einem CIFS-share)
also etwa so:
\\LINUXSERVER\meinpfad\datei.pdf
und
/Var/spool/test/datei.pdf
geht das?
Re: os.path.join linux-Pfade UND Windows-Pfade generieren ...
Verfasst: Dienstag 28. Oktober 2025, 12:10
von grubenfox
Für Dateipfade gibt es mittlerweile (laut Doku seit Python 3.4) das pathlib-Modul. Das kann beides... sowohl den Linux-Pfad, als auch den Windows-Pfad.
Re: os.path.join linux-Pfade UND Windows-Pfade generieren ...
Verfasst: Dienstag 28. Oktober 2025, 14:10
von DeaD_EyE
Code: Alles auswählen
from pathlib import Path, PureWindowsPath
SPOOL = Path("/var/spool/test/")
def windows_share(server, *path):
return PureWindowsPath(f"//{server}", *path)
windows_pfad = windows_share("servername", "meinpfad", "datei.xyz")
print(windows_pfad)
linux_pfad = SPOOL / windows_pfad.name
print(linux_pfad)
Ausgabe unter Windows:
\\servername\meinpfad\datei.xyz
\var\spool\test\datei.xyz
Ausgabe unter Linux:
esp32@ganymed:~$ python3 pfad.py
\\servername\meinpfad\datei.xyz
/var/spool/test/datei.xyz
AFIK ist es besser, die normalen Schrägstriche zu verwenden anstatt der umgekehrten.
Umgekehrte Schrägstriche werden auch für die Interpretation von bestimmten Zeichen genutzt.
Das bekannteste ist \n für eine Zeilenende und \r für den Zeilenvorschub unter Windows.
Wenn man die normalen Schrägstriche möchte, nutzt man unter Linux einfach nur Path anstatt PureWindowsPath.