it-swarm.com.de

Wie bekomme ich den vollständigen Pfad des aktuellen Verzeichnisses in Python?

Ich möchte den Verzeichnispfad der aktuellen Datei abrufen.
Ich habe es versucht: 

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

Aber wie kann ich den Verzeichnispfad abrufen? Zum Beispiel:

'C:\\python27\\'
544
Shubham

Wenn Sie das Verzeichnis des ausgeführten Skripts meinen:

import os
os.path.dirname(os.path.abspath(__file__))

Wenn Sie das aktuelle Arbeitsverzeichnis meinen:

import os
os.getcwd()

Beachten Sie, dass vor und nach file zwei Unterstriche stehen, nicht nur einer. 

Beachten Sie auch, dass, wenn Sie interaktiv laufen oder Code von einer anderen als einer Datei geladen haben (z. B. einer Datenbank oder Online-Ressource), __file__ möglicherweise nicht festgelegt wird, da es keine "aktuellen Datei" gibt. Bei der obigen Antwort wird davon ausgegangen, dass das häufigste Szenario der Ausführung eines Python-Skripts in einer Datei ausgeführt wird. 

1149
Bryan Oakley

In Python 3:

from pathlib import Path

mypath = Path().absolute()
print(mypath)
34
Ron Kalian
import os
print os.path.dirname(__file__)
9
chefsmart

Sie können die os- und os.path-Bibliothek einfach wie folgt verwenden

import os
os.chdir(os.path.dirname(os.getcwd()))

os.path.dirname gibt das oberste Verzeichnis vom aktuellen zurück. Es erlaubt uns, auf eine höhere Ebene zu wechseln, ohne ein Dateiargument zu übergeben und ohne den absoluten Pfad zu kennen.

5
mulg0r

NÜTZLICHE WEGEIGENSCHAFTEN IN PYTHON:

 from pathlib import Path

    #Returns the path of the directory, where your script file is placed
    mypath = Path().absolute()
    print('Absolute path : {}'.format(mypath))

    #if you want to go to any other file inside the subdirectories of the directory path got from above method
    filePath = mypath/'data'/'fuel_econ.csv'
    print('File path : {}'.format(filePath))

    #To check if file present in that directory or Not
    isfileExist = filePath.exists()
    print('isfileExist : {}'.format(isfileExist))

    #To check if the path is a directory or a File
    isadirectory = filePath.is_dir()
    print('isadirectory : {}'.format(isadirectory))

    #To get the extension of the file
    fileExtension = mypath/'data'/'fuel_econ.csv'
    print('File extension : {}'.format(filePath.suffix))

AUSGABE: ABSOLUTER WEG IS DER WEG, AUF DEM IHRE PYTHON-DATEI IS GELEGT WURDE

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

1
Arpan Saini

Ich habe eine Funktion zum Ausführen von Python unter IIS in CGI erstellt, um den aktuellen Ordner abzurufen:

import os 
   def getLocalFolder():
        path=str(os.path.dirname(os.path.abspath(__file__))).split('\\')
        return path[len(path)-1]
0
Gil Allen

Um die Migrationskonsistenz auf allen Plattformen (macOS/Windows/Linux) zu gewährleisten, versuchen Sie Folgendes:

path = r'%s' % os.getcwd().replace('\\','/')
0
Qiao Zhang

IPython hat einen magischen Befehl %pwd, um das aktuelle Arbeitsverzeichnis abzurufen. Es kann auf folgende Weise verwendet werden:

from IPython.terminal.embed import InteractiveShellEmbed

ip_Shell = InteractiveShellEmbed()

present_working_directory = ip_Shell.magic("%pwd")

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

present_working_directory = %pwd
0
Nafeez Quraishi

Versuche dies:

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

System: MacOS

Version: Python 3.6 mit Anaconda

import os rootpath = os.getcwd() os.chdir(rootpath)

0
Suyang Xu

In Python 3.x mache ich:

from pathlib import Path

path = Path(__file__).parent.absolute()

Erläuterung:

  • Path(__file__) ist der Pfad zur aktuellen Datei.
  • .parent gibt Ihnen das -Verzeichnis, in dem sich die Datei befindet.
  • .absolute() gibt Ihnen den Pfad full absolute an.

Die Verwendung von pathlib ist die moderne Art, mit Pfaden zu arbeiten. Wenn Sie es später aus irgendeinem Grund als Zeichenfolge benötigen, machen Sie einfach str(path).

0
Arminius