Seite 1 von 1

Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 14:50
von Hillson
Moin,

ich definiere mal kurz eine Ordnerstruktur, um daran mein Anliegen zu erläutern. Es gibt Ordner1, Ordner2 und Ordner3. Ordner2 und Ordner3 befinden sich in Ordner1. In Ordner2 befindet sich ein Python Script und in Ordner3 befinden sich Bilder.

Von dem Script aus Ordner2 sollen nun die Bilder aus Ordner3 geladen werden. Er findet aber aus dem Ordner2 heraus den Ordner3 nicht. Selbst wenn ich den kompletten Pfad einfüge funktioniert es nicht.
Das Script war vorher auf der gleichen Ebenen wie Ordner3 und da habe ich mit listdir('Ordner3/') ganz einfach auf den Ordner zugreifen können. Nun möchte ich aber Ordnung in meine Ordnerstruktur bringen und dazu muss das Script in Ordner2.

Vielen Dank für die Hilfe.
Beste Grüße

Re: Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 15:06
von Sirius3
mit absoluten Pfaden müssen die Dateien auf jeden Fall gefunden werden. Zeig doch, was Du versucht hast.

Re: Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 15:11
von Hillson

Code: Alles auswählen

files = listdir('Users/tobiashilbert/Documents/Dokumente - Tobiass iMac/Studium/Master/Trimester 12/Masterarbeit/code/Classification/Images/Original/Train/')
Da ist jetzt nicht so viel zu zeigen. Das wäre der Code mit absolutem Pfad. Und da bekomme ich den Fehler:

FileNotFoundError: [Errno 2] No such file or directory: 'Users/tobiashilbert/Documents/Dokumente - Tobiass iMac/Studium/Master/Trimester 12/Masterarbeit/code/Classification/Images/Original/Train/'

Den Pfad habe ich einfach aus der Informationen eines Bildes kopiert.

Re: Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 16:08
von __deets__
Na das ist ja auch ein relativer Pfad - erkennbar an dem fehlenden slash am Anfang. Es muss schon "/Users/tobiashilbert/...." heissen.

Re: Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 17:28
von Hillson
Vielen Dank jetzt funktioniert es. Gibt es da noch eine elegantere Lösung als den absoluten Pfad zu verwenden?

Re: Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 17:34
von kbr
Ja, ein klar definierter relativer Pfad. Das ist dann auch portabel.

Re: Wie mit listdir() auf einen "übergeordneten" Ordner zugreifen?

Verfasst: Donnerstag 24. Mai 2018, 17:51
von __deets__
Ein beliebter weg ist sich an der __file__ Variablen lang zu hangeln. Die gibt für jedes Modul/Skrip an, welchen Pfad es hat. Wenn deine Daten relativ dazu fix sind, kannst du einen Pfad zusammen bauen.

Und ggf natürlich einfach argparse nutzen, und den Pfad beim Aufruf angeben.