556 Stimmen

Wie erhalte ich das übergeordnete Verzeichnis in Python?

Könnte mir jemand sagen, wie man das übergeordnete Verzeichnis eines Pfades in Python in einem Cross-Plattform Weg zu erhalten. Z.B..

C:\Program Files ---> C:\

und

C:\ ---> C:\

Wenn das Verzeichnis kein übergeordnetes Verzeichnis hat, wird das Verzeichnis selbst zurückgegeben. Die Frage mag einfach erscheinen, aber ich konnte sie nicht über Google ausgraben.

1voto

Nava Bogatee Punkte 1115
import os 

def parent_directory():
  # Create a relative path to the parent of the current working directory 
  relative_parent = os.path.join(os.getcwd(), "..") # .. means parent directory

  # Return the absolute path of the parent directory
  return os.path.abspath(relative_parent)

print(parent_directory())

0voto

Jaykumar Patel Punkte 25455

GET Übergeordneter Verzeichnispfad et make Neues Verzeichnis (Name new_dir )

Pfad zum übergeordneten Verzeichnis abrufen

os.path.abspath('..')
os.pardir

Beispiel 1

import os
print os.makedirs(os.path.join(os.path.dirname(__file__), os.pardir, 'new_dir'))

Beispiel 2

import os
print os.makedirs(os.path.join(os.path.dirname(__file__), os.path.abspath('..'), 'new_dir'))

0voto

os.path.abspath('D:\Dir1\Dir2\..')

>>> 'D:\Dir1'

Also ein .. hilft

0voto

fuyunliu Punkte 5
import os

def parent_filedir(n):
    return parent_filedir_iter(n, os.path.dirname(__file__))

def parent_filedir_iter(n, path):
    n = int(n)
    if n <= 1:
        return path
    return parent_filedir_iter(n - 1, os.path.dirname(path))

test_dir = os.path.abspath(parent_filedir(2))

0voto

MPA Punkte 1674

Die oben gegebenen Antworten sind alle völlig in Ordnung, wenn man eine oder zwei Verzeichnisebenen nach oben gehen will, aber sie können etwas umständlich werden, wenn man den Verzeichnisbaum um viele Ebenen (z. B. 5 oder 10) durchqueren muss. Dies kann kurz und bündig geschehen, indem man eine Liste von N os.pardir s in os.path.join . Beispiel:

import os
# Create list of ".." times 5
upup = [os.pardir]*5
# Extract list as arguments of join()
go_upup = os.path.join(*upup)
# Get abspath for current file
up_dir = os.path.abspath(os.path.join(__file__, go_upup))

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