1501 Stimmen

Wie erhalte ich den vollständigen Pfad des aktuellen Verzeichnisses der Datei?

Wie erhalte ich den aktuellen Dateipfad des aktuellen Verzeichnisses? Ich habe es versucht:

>>> os.path.abspath(__file__)
'C:\\python27\\test.py'

Aber ich möchte:

'C:\\python27\\'

7voto

Arpan Saini Punkte 3235

NÜTZLICHE PFAD-EIGENSCHAFTEN IN PYTHON:

from pathlib import Path

#Gibt den Pfad des Verzeichnisses zurück, in dem Ihre Skriptdatei platziert ist
mypath = Path().absolute()
print('Absoluter Pfad: {}'.format(mypath))

#wenn Sie zu einer anderen Datei in den Unterverzeichnissen des zuvor erhaltenen Verzeichnispfads gehen möchten
filePath = mypath/'data'/'fuel_econ.csv'
print('Dateipfad : {}'.format(filePath))

#Um zu überprüfen, ob die Datei in diesem Verzeichnis vorhanden ist oder nicht
isfileExist = filePath.exists()
print('isfileExist : {}'.format(isfileExist))

#Um zu überprüfen, ob der Pfad ein Verzeichnis oder eine Datei ist
isadirectory = filePath.is_dir()
print('isadirectory : {}'.format(isadirectory))

#Um die Erweiterung der Datei zu erhalten
fileExtension = mypath/'data'/'fuel_econ.csv'
print('Dateierweiterung : {}'.format(filePath.suffix))

AUSGABE: DER ABSOLUTE PFAD IST DER PFAD, WO IHRE PYTHON-DATEI PLATZIERT IST

Absoluter Pfad : D:\Study\Machine Learning\Jupitor Notebook\JupytorNotebookTest2\Udacity_Scripts\Matplotlib und seaborn Part2

Dateipfad : D:\Study\Machine Learning\Jupitor Notebook\JupytorNotebookTest2\Udacity_Scripts\Matplotlib und seaborn Part2\data\fuel_econ.csv

isfileExist : True

isadirectory : False

Dateierweiterung : .csv

7voto

Sun Bear Punkte 6448

Ich habe festgestellt, dass die folgenden Befehle den vollständigen Pfad des übergeordneten Verzeichnisses eines Python 3 Skripts zurückgeben.

Python 3 Skript:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from pathlib import Path

#Holen Sie den absoluten Pfad eines Python3.6 und höheren Skripts.
dir1 = Path().resolve()  #Machen Sie den Pfad absolut, indem Sie alle symbolischen Links auflösen.
dir2 = Path().absolute() #Siehe Antwort von @RonKalian
dir3 = Path(__file__).parent.absolute() #Siehe Antwort von @Arminius
dir4 = Path(__file__).parent 

print(f'dir1={dir1}\ndir2={dir2}\ndir3={dir3}\ndir4={dir4}')

BEMERKUNGEN !!!!

  1. dir1 und dir2 funktionieren nur, wenn das Skript im aktuellen Arbeitsverzeichnis liegt, brechen jedoch in jedem anderen Fall ab.
  2. Angesichts dessen, dass Path(__file__).is_absolute() True ist, erscheint die Verwendung der Methode .absolute() in dir3 überflüssig.
  3. Der kürzeste Befehl, der funktioniert, ist dir4.

Erklärungslinks: .resolve(), .absolute(), Path(file).parent().absolute()

0voto

Nafeez Quraishi Punkte 4320

IPython hat einen Zauberbefehl %pwd, um das aktuelle Arbeitsverzeichnis zu erhalten. Es kann auf folgende Weise verwendet werden:

from IPython.terminal.embed import InteractiveShellEmbed

ip_shell = InteractiveShellEmbed()

present_working_directory = ip_shell.magic("%pwd")

In IPython Jupyter Notebook kann %pwd direkt wie folgt verwendet werden:

present_working_directory = %pwd

0voto

Gil Allen Punkte 1133

Ich habe eine Funktion erstellt, die verwendet werden kann, wenn Python unter IIS in CGI ausgeführt wird, um den aktuellen Ordner zu erhalten:

import os 
def getLocalFolder():
    path=str(os.path.dirname(os.path.abspath(__file__))).split(os.sep)
    return path[len(path)-1]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X