Ich muss den Namen des übergeordneten Verzeichnisses eines bestimmten Pfads extrahieren. So sieht es aus:
c:\stuff\directory_i_need\subdir\file
Ich ändere den Inhalt der "Datei" mit etwas, das den directory_i_need
Namen darin verwendet (nicht den Pfad). Ich habe eine Funktion erstellt, die mir eine Liste aller Dateien gibt, und dann ...
for path in file_list:
#directory_name = os.path.dirname(path) # this is not what I need, that's why it is commented
directories, files = path.split('\\')
line_replace_add_directory = line_replace + directories
# this is what I want to add in the text, with the directory name at the end
# of the line.
Wie kann ich das machen?
Antworten:
Und Sie können dies so oft wie nötig fortsetzen ...
Edit: von os.path können Sie entweder os.path.split oder os.path.basename verwenden:
quelle
In Python 3.4 können Sie das pathlib-Modul verwenden :
quelle
Alles was Sie brauchen ist ein
parent
Teil, wenn Sie verwendenpathlib
.Wird ausgegeben:
Wenn Sie alle Teile benötigen (die bereits in anderen Antworten behandelt wurden), verwenden Sie
parts
:Dann erhalten Sie eine Liste:
Spart Zeit.
quelle
Überprüfen Sie zunächst, ob Sie
splitunc()
eine verfügbare Funktion in habenos.path
. Das erste zurückgegebene Element sollte das sein, was Sie möchten ... aber ich bin unter Linux und habe diese Funktion nicht, wenn ich sie importiereos
und versuche, sie zu verwenden.Andernfalls besteht eine halb hässliche Möglichkeit, die Arbeit zu erledigen, darin, Folgendes zu verwenden:
Dies zeigt das Abrufen des Verzeichnisses direkt über der Datei und des Verzeichnisses direkt darüber.
quelle
Folgendes habe ich getan, um den Teil des Verzeichnisses zu extrahieren:
Danke für Ihre Hilfe.
quelle
Dies sollte auch den Trick tun.
quelle
Sie müssen den gesamten Pfad als Parameter in os.path.split einfügen. Siehe Die Dokumente . Es funktioniert nicht wie String Split.
quelle