Wie mache ich Verzeichniszugriffe für Windows und Linux?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Bei Windows gibt man Verzeichnisse so an: "Subdirectory\File" bei Linux aber so "Subdirectory/File" also '/' statt '\'. Wie schreibe ich am Besten ein Programm, das auf Unterverzeichnisse zugreift aber sowohl unter Linux als auch Windows laufen soll?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Indem du die richtigen Mittel zum Pfade zusammensetzen benutzt: `os.path.join`

Code: Alles auswählen

path = os.path.join('directory', 'subdirectory', 'file')
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

cofi hat geschrieben:Indem du die richtigen Mittel zum Pfade zusammensetzen benutzt: `os.path.join`

Code: Alles auswählen

path = os.path.join('directory', 'subdirectory', 'file')
Danke
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

directory/subdirectory/file
funktioniert in Python sowohl unter Linux als auch unter Windows
a fool with a tool is still a fool, www.magben.de, YouTube
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

MagBen hat geschrieben:directory/subdirectory/file
funktioniert in Python sowohl unter Linux als auch unter Windows
Ja danke, das ist noch besser, denn dann braucht man den String nicht erst zu zerlegen, um ihn dann passend zusammenzusetzen.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Das hat nichts mit Python zu tun, sondern mit der Pfadbehandlung von Windows. Die laesst beides zu.

Warum denn "zerlegen und dann passend zusammensetzen"? Wenn du das Pfadfragment definierst, kannst du es doch gleich richtig machen.
Nehmen wir mal an du hat eine feste Verzeichnisstruktur für Plugins:

Code: Alles auswählen

PLUGIN_DIRECTORY = "src/plugin"
lässt sich durch

Code: Alles auswählen

PLUGIN_DIRECTORY = os.path.join("src", "plugin")
ersetzen.
Antworten