Unterschied zwischen os.path.dirname (os.path.absppath (__ file__)) und os.path.dirname (__ file__)

8

Ich bin ein Anfänger, der an Django Project arbeitet. Die Settings.py-Datei eines Django-Projekts enthält diese zwei Zeilen:

%Vor%

Ich möchte den Unterschied wissen, da ich glaube, dass beide auf dasselbe Verzeichnis verweisen. Es wäre auch eine große Hilfe, wenn Sie einige Links os.path Funktionen bereitstellen könnten.

    
Rishabh Agrahari 16.07.2016, 15:13
quelle

1 Antwort

13

BASE_DIR zeigt auf das übergeordnete -Verzeichnis von PROJECT_ROOT . Sie können die beiden Definitionen wie folgt neu schreiben:

%Vor%

, weil die Funktion os.path.dirname() einfach das letzte Segment entfernt eines Pfades.

Oben zeigt der __file__ name auf den Dateinamen des aktuellen Moduls, siehe Python-Datamodell :

  

__file__ ist der Pfadname der Datei, von der das Modul geladen wurde, wenn es aus einer Datei geladen wurde.

Es kann jedoch ein relativer Pfad sein, also der os.path.abspath() function wird verwendet, um dies in einen absoluten Pfad umzuwandeln, bevor nur der Dateiname entfernt und der vollständige Pfad zu dem Verzeichnis gespeichert wird, in dem sich das Modul in PROJECT_ROOT befindet.

    
Martijn Pieters 16.07.2016, 15:15
quelle

Tags und Links