Können sagen, Sie ein Modul haben dieeinen Dateipfad "immer relativ zum aktuellen Modul" erstellen?
myfile = open('test.txt', 'r')
enthält und die ‚test.txt‘ Datei im selben Ordner. Wenn Sie das Modul ausführen, wird die Datei erfolgreich geöffnet. Nehmen wir an, Sie importieren dieses Modul von einem anderen, das sich in einem anderen Ordner befindet. Die Datei wird nicht im selben Ordner wie das Modul mit dem Code gesucht. Also, wie das Modul Dateien mit relativen Pfaden im selben Ordner zuerst suchen? Es gibt verschiedene Lösungen mit "__file__
" oder "os.getcwd()
", aber ich hoffe, es gibt einen saubereren Weg, wie das gleiche Sonderzeichen in der Zeichenfolge, die Sie an open() oder file() übergeben.
Was ist das Problem mit 'os.getcwd()'? – cfedermann
'os.getcwd()' gibt den Pfad des ersten Moduls zurück, das dieses Modul importiert oder ein anderes Modul importiert hat, das es importiert hat. Das erste Modul kann in vielen Verzeichnissen nach oben oder unten sein. Es scheint also nicht sehr elegant zu sein, "os.getcwd() + 'irgendwas/somethingselse/yetanother/finallyhere'' –
einzugeben. Nun, dann probiere die vorgeschlagene' sys.modules' Antwort unten aus: – cfedermann