Python Get Dateiname ohne Erweiterung aus Pfad

  1. Ermitteln des Dateinamens ohne Erweiterung aus dem Pfad mit der Methode pathlib.path().stem in Python
  2. Dateiname ohne Erweiterung aus dem Pfad holen mit den Methoden os.path.splitext() und string.split() in Python
  3. Dateinamen aus dem Pfad holen mit den Methoden os.path.basename() und os.path.splitext() in Python

Dieses Tutorial demonstriert verschiedene Methoden, um Dateinamen ohne Erweiterung aus dem Dateipfad in Python zu erhalten. Angenommen, das Ziel ist es, den Namen von Dateien aus der Liste der Dateipfade zu erhalten, die in Form einer Zeichenkette zur Verfügung stehen, wie zum Beispiel aus dem Pfad Desktop/Ordner/meineDatei.txt, erhalten wir nur den Dateinamen meineDatei ohne .txt-Erweiterung.

Ermitteln des Dateinamens ohne Erweiterung aus dem Pfad mit der Methode pathlib.path().stem in Python

Die Methode Path().stem nimmt den Dateipfad als Eingabe und gibt den Dateinamen zurück, indem sie ihn aus dem Dateipfad extrahiert. Zum Beispiel gibt sie aus dem Pfad Desktop/folder/myfile.txt die Datei myfile ohne die Erweiterung .txt zurück.

Das folgende Code-Beispiel zeigt, wie Sie den Path().stem verwenden, um den Dateinamen ohne die Dateierweiterung aus dem Dateipfad zu erhalten:

from pathlib import Path

file_path = "Desktop/folder/myfile.txt"
file_name = Path(file_path).stem
print(file_name)

Ausgabe:

myfile

Dateiname ohne Erweiterung aus dem Pfad holen mit den Methoden os.path.splitext() und string.split() in Python

Die Methode path.splitext() des Moduls os nimmt den Dateipfad als String-Eingabe und gibt den Dateipfad und die Dateierweiterung als Ausgabe zurück.

Da wir den Dateinamen aus dem Dateipfad erhalten wollen, können wir zunächst die Dateierweiterung aus dem Dateipfad mit der Methode os.path.splitext() entfernen. Das erste Element des Aufspaltungsergebnisses ist der Dateipfad ohne Erweiterung. Dieses Ergebnis wird mit / als Trennzeichen weiter aufgeteilt. Das letzte Element ist dann der Dateiname ohne Erweiterung. Das folgende Code-Beispiel zeigt, wie der Dateiname ohne Erweiterung aus dem Dateipfad mit den Methoden path.splitext() und string.split() ermittelt werden kann.

import os

file_path = "Desktop/folder/myfile.txt"

file_path = os.path.splitext(file_path)[0]
file_name = file_path.split('/')[-1]
print(file_name)

Ausgabe:

test

Dateinamen aus dem Pfad holen mit den Methoden os.path.basename() und os.path.splitext() in Python

In Python nimmt die Methode path.basename() des Moduls os den Dateipfad als Eingabe und gibt den aus dem Dateipfad extrahierten Basisnamen zurück. Zum Beispiel, der Basisname von Desktop/folder/myfile.txt ist myfile.txt.

Da wir den Dateinamen aus dem Dateipfad ermitteln wollen, kann der Grundname mit der Methode path.basename() und der Dateiname mit path.splitext() extrahiert werden. Das folgende Codebeispiel zeigt, wie der Dateiname aus dem Dateipfad mit den Methoden path.basename() und path.splitext() ermittelt wird.

import os

file_path = "Desktop/folder/myfile.txt"

basename = os.path.basename(file_path)
file_name = os.path.splitext(basename)[0]
print(file_name)

Ausgabe:

myfile
Warnung

Wenn die Datei einen Namen wie myfile.tar.gz hat, geben alle oben beschriebenen Methoden myfile.tar als Dateinamen zurück.

Angenommen, wir brauchen den Dateinamen ohne den Teil nach . wie myfile anstelle von myfile.tar aus dem Pfad Desktop/folder/myfile.tar.gz, kann die Methode string.index() verwendet werden, um nur myfile aus myfile.tar zu extrahieren. Der Nachteil dieser Methode ist jedoch, dass sie my als Dateinamen zurückgibt, wenn das . Teil des Dateinamens ist, z. B. my.file.tar.gz.

Das Code-Beispiel unten zeigt, wie wir string.index() verwenden können, um .tar aus der Ausgabe myfile.tar der oben erklärten Methoden zu entfernen:

file_name = "myfile.tar"
index = file_name.index('.')
file_name = file_name[:index]
print(file_name)

file_name = "my.file.tar"
index = file_name.index('.')
file_name = file_name[:index]
print(file_name)

Ausgabe:

myfile
my

Verwandter Artikel - Python File

  • Wie man Dateien und Verzeichnisse mit Python löscht