Seite 1 von 1

Wie mache ich Verzeichniszugriffe für Windows und Linux?

Verfasst: Donnerstag 13. August 2015, 20:37
von Alfons Mittelmeyer
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?

Re: Wie mache ich Verzeichniszugriffe für Windows und Linux?

Verfasst: Donnerstag 13. August 2015, 20:43
von cofi
Indem du die richtigen Mittel zum Pfade zusammensetzen benutzt: `os.path.join`

Code: Alles auswählen

path = os.path.join('directory', 'subdirectory', 'file')

Re: Wie mache ich Verzeichniszugriffe für Windows und Linux?

Verfasst: Donnerstag 13. August 2015, 21:24
von Alfons Mittelmeyer
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

Re: Wie mache ich Verzeichniszugriffe für Windows und Linux?

Verfasst: Samstag 15. August 2015, 09:54
von MagBen
directory/subdirectory/file
funktioniert in Python sowohl unter Linux als auch unter Windows

Re: Wie mache ich Verzeichniszugriffe für Windows und Linux?

Verfasst: Samstag 15. August 2015, 11:00
von Alfons Mittelmeyer
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.

Re: Wie mache ich Verzeichniszugriffe für Windows und Linux?

Verfasst: Samstag 15. August 2015, 13:10
von cofi
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.