Aktuelles Verzeichnis und Dateiverzeichnis finden

Welche Befehle kann ich in Python verwenden, um zu suchen:

  1. das aktuelle Verzeichnis (wo ich im Terminal war, als ich das Python-Skript ausgeführt habe) und
  2. wo sich die Datei befindet, die ich gerade ausführe?
Lösung

Um den vollständigen Pfad zu dem Verzeichnis zu erhalten, in dem sich eine Python-Datei befindet, schreiben Sie dies in diese Datei:

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))

(Beachten Sie, dass die obige Beschwörung nicht funktioniert, wenn Sie bereits os.chdir() benutzt haben, um Ihr aktuelles Arbeitsverzeichnis zu ändern, da der Wert der Konstante __file__ relativ zum aktuellen Arbeitsverzeichnis ist und nicht durch einen os.chdir()-Aufruf geändert wird).


Um das aktuelle Arbeitsverzeichnis zu erhalten, verwenden Sie

import os
cwd = os.getcwd()

Dokumentationsverweise für die oben verwendeten Module, Konstanten und Funktionen:

  • Die Module os und os.path.
  • Die Konstante __file__
  • os.path.realpath(path) (gibt "den kanonischen Pfad des angegebenen Dateinamens zurück, wobei alle im Pfad gefundenen symbolischen Links eliminiert werden ")
  • os.path.dirname(path) (gibt "den Verzeichnisnamen des Pfadnamens path" zurück)
  • os.getcwd() (liefert "eine Zeichenkette, die das aktuelle Arbeitsverzeichnis darstellt ")
  • os.chdir(path) ("das aktuelle Arbeitsverzeichnis in path ändern ")
Kommentare (8)

Aktuelles Arbeitsverzeichnis: os.getcwd()

Und das Attribut __file__ kann Ihnen helfen, herauszufinden, wo sich die Datei befindet, die Sie ausführen. Dieser SO-Beitrag erklärt alles: https://stackoverflow.com/questions/2632199/how-do-i-get-the-path-of-the-current-executed-file-in-python

Kommentare (0)
  1. um den vollständigen Pfad zum aktuellen Verzeichnis zu ermitteln
    >>import os
    >>print os.getcwd()

o/p: "C :\Users\admin\myfolder"

  1. um nur den Namen des aktuellen Verzeichnisses zu erhalten
    >>import os
    >>str1=os.getcwd()
    >>str2=str1.split('\\')
    >>n=len(str2)
    >>print str2[n-1]

o/p: "meinOrdner"

Kommentare (4)