Gibt es eine Funktion zum Extrahieren der Erweiterung aus einem Dateinamen?
Antworten
Zu viele Anzeigen?Ja. Verwenden Sie . os.path.splitext
(siehe Python 2.X Dokumentation o Python 3.X Dokumentation ):
>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
Im Gegensatz zu den meisten manuellen String-Splitting-Versuchen, os.path.splitext
wird korrekt behandelt /a/b.c/d
als "ohne Erweiterung" statt "mit Erweiterung .c/d
und es wird behandelt .bashrc
als "ohne Erweiterung" statt "mit Erweiterung .bashrc
:
>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
Neu in Version 3.4.
import pathlib
print(pathlib.Path('yourPath.example').suffix) # '.example'
Ich bin überrascht, dass noch niemand erwähnt hat pathlib
noch nicht, pathlib
ist großartig!
Wenn Sie alle Suffixe benötigen (z. B. wenn Sie eine .tar.gz
), .suffixes
gibt eine Liste von ihnen zurück!
Für einfache Anwendungsfälle kann eine Option die Aufteilung von dot sein:
>>> filename = "example.jpeg"
>>> filename.split(".")[-1]
'jpeg'
Kein Fehler, wenn die Datei keine Erweiterung hat:
>>> "filename".split(".")[-1]
'filename'
Aber Sie müssen vorsichtig sein:
>>> "png".split(".")[-1]
'png' # But file doesn't have an extension
Es funktioniert auch nicht mit versteckten Dateien in Unix-Systemen:
>>> ".bashrc".split(".")[-1]
'bashrc' # But this is not an extension
Für den allgemeinen Gebrauch bevorzugen Sie os.path.splitext
- See previous answers
- Weitere Antworten anzeigen