Python-Programm zum Abrufen des Dateinamens aus dem Dateipfad
In diesem Artikel werden wir uns das Programm ansehen, um den Dateinamen aus dem angegebenen Dateipfad in der Programmiersprache Python zu ermitteln. Während der Automatisierung kann es vorkommen, dass wir den Dateinamen aus dem Dateipfad extrahieren müssen.
Besser ist es, Kenntnisse zu haben über:
- Python OS-Modul
- Python-Pfadmodul
- Reguläre Ausdrücke
- Integriertes rsplit()
Methode 1: Python OS-Modul
Beispiel 1: Holen Sie sich den Dateinamen aus dem Pfad ohne Erweiterung split()
Pythons Teilt() Die Funktion unterteilt den angegebenen Text mithilfe des definierten Trennzeichens in eine Liste von Zeichenfolgen und gibt eine Liste von Zeichenfolgen zurück, die durch das bereitgestellte Trennzeichen unterteilt wurden.
Python3
import> os> path> => 'D:homeRiot GamesVALORANTliveVALORANT.exe'> print> (os.path.basename(path).split(> '/'> )[> -> 1> ])> |
Ausgabe:
VALORANT.exe
Beispiel 2: Rufen Sie den Dateinamen mithilfe von os.path.basename aus dem Dateipfad ab
Der Basisname im angegebenen Pfad kann mit der integrierten Python-Funktion os.path.basename() ermittelt werden. Die Funktion path.basename() akzeptiert ein Pfadargument und gibt den Basisnamen des Pfadnamens path zurück.
Python3
import> os> file_path> => 'C:/Users/test.txt'> # file path> # using basename function from os> # module to print file name> file_name> => os.path.basename(file_path)> print> (file_name)> |
Ausgabe:
test.txt
Beispiel 3: Ermitteln Sie den Dateinamen mithilfe von os aus dem Dateipfad. Splitext
Bei dieser Methode erhalten Sie am Ende eine Datei mit einer Erweiterung. Was aber, wenn wir nur den Dateinamen ohne Erweiterung oder nur Erweiterungen benötigen? Hier Splitext Funktion im OS-Modul kommt ins Spiel. Diese Methode gibt ein Tupel von Zeichenfolgen zurück, die Dateinamen und Text enthalten, und wir können mithilfe der Indizierung darauf zugreifen.
Beispiel:
Python3
import> os> file_path> => 'C:/Users/test.txt'> file_name> => os.path.basename(file_path)> file> => os.path.splitext(file_name)> print> (> file> )> # returns tuple of string> print> (> file> [> 0> ]> +> file> [> 1> ])> |
Ausgabe:
('test', '.txt') test.txt Methode 2: Rufen Sie den Dateinamen aus dem Dateipfad ab mit Pathlib
Das Python Pathlib-Paket bietet eine Reihe von Klassen, die Dateisystempfade mit einer für viele Betriebssysteme geeigneten Semantik beschreiben. Die Standard-Dienstprogrammmodule für Python umfassen dieses Modul. Obwohl Stengel ist eines der Dienstprogrammattribute, das das Extrahieren des Dateinamens aus dem Link ohne Erweiterung ermöglicht. Wenn wir eine Erweiterung mit der Datei wünschen, können wir Namensattribute verwenden
Beispiel:
Python3
from> pathlib> import> Path> file_path> => 'C:/Users/test.txt'> # stem attribute extracts the file> # name> print> (Path(file_path).stem)> # name attribute returns full name> # of the file> print> (Path(file_path).name)> |
Ausgabe:
test test.txt
Methode 3: Rufen Sie den Dateinamen aus dem Dateipfad ab mit Reguläre Ausdrücke
Wir können einen regulären Ausdruck verwenden, um den Dateinamen mit dem spezifischen Muster abzugleichen.
Pattern - [w]+?(?=.)
Dieses Muster ist in 3 Muster unterteilt
- [w] entspricht den Wörtern innerhalb der Menge
- +? stimmt mit der Zeichenfolge überein, wenn sie zuvor nur einmal vorhanden war ? Stichwort
- (?=) entspricht allen Zeichen ohne Zeilenumbruch und stoppt unbedingt bei.
Beispiel:
Python3
import> re> file_path> => 'C:/Users/test.txt'> pattern> => '[w-]+?(?=.)'> # searching the pattern> a> => re.search(pattern, file_path)> # printing the match> print> (a.group())> |
Ausgabe:
test
Methode 4: Verwenden Sie die integrierte Python-Funktion split(), um den Dateipfad in eine Liste einzelner Komponenten aufzuteilen, und verwenden Sie dann die Methode rsplit():
Sie können die integrierte Python-Funktion split() verwenden, um den Dateipfad in eine Liste einzelner Komponenten aufzuteilen, und dann die Methode rsplit() verwenden, um die letzte Komponente (die der Dateiname und die Erweiterung sein sollte) in eine Liste aufzuteilen enthält den Dateinamen und die Erweiterung. Mithilfe der Indizierung können Sie dann den Dateinamen aus dieser Liste extrahieren.
Hier ist ein Beispiel, wie dies geschehen kann:
Python3
def> get_file_name(file_path):> > file_path_components> => file_path.split(> '/'> )> > file_name_and_extension> => file_path_components[> -> 1> ].rsplit(> '.'> ,> 1> )> > return> file_name_and_extension[> 0> ]> # Example usage> file_path> => 'C:/Users/test.txt'> result> => get_file_name(file_path)> print> (result)> # Output: 'test'> |
Ausgabe: Test
Bei diesem Ansatz wird zunächst die Funktion „split()“ verwendet, um den Dateipfad in eine Liste einzelner Komponenten aufzuteilen, die durch das Zeichen „/“ getrennt sind. Die Methode rsplit() wird dann verwendet, um die letzte Komponente (die der Dateiname und die Erweiterung sein sollte) in eine Liste aufzuteilen, die den Dateinamen und die Erweiterung enthält, wobei das Zeichen „.“ als Trennzeichen verwendet wird. Aus dieser Liste wird dann mittels Indizierung der Dateiname extrahiert. Dieser Ansatz funktioniert für jeden Dateipfad und jede Dateierweiterung, solange der Dateipfad in einem Format vorliegt, das mit den Methoden split() und rsplit() geparst werden kann.