1809 Stimmen

Extrahieren der Erweiterung aus dem Dateinamen in Python

Gibt es eine Funktion zum Extrahieren der Erweiterung aus einem Dateinamen?

42voto

blented Punkte 2433

Es lohnt sich, einen niedrigeren Wert hinzuzufügen, damit Sie sich nicht wundern müssen, warum die JPGs nicht in Ihrer Liste auftauchen.

os.path.splitext(filename)[1][1:].strip().lower()

22voto

r3t40 Punkte 479

Sie können einige großartige Dinge in pathlib Modul (verfügbar in Python 3.x) finden.

import pathlib
x = pathlib.PurePosixPath("C:\\Path\\To\\File\\myfile.txt").suffix
print(x)

# Output 
'.txt'

22voto

yamex5 Punkte 219

Jede der obigen Lösungen funktioniert, aber unter Linux habe ich festgestellt, dass es einen Zeilenumbruch am Ende der Erweiterungszeichenfolge gibt, der verhindert, dass Übereinstimmungen erfolgreich sind. Fügen Sie die strip() Methode zu beenden. Zum Beispiel:

import os.path
extension = os.path.splitext(filename)[1][1:].strip()

22voto

XavierCLL Punkte 1033

Bei splitext gibt es Probleme mit Dateien mit doppelter Erweiterung (z.B. file.tar.gz , file.tar.bz2 , etc..)

>>> fileName, fileExtension = os.path.splitext('/path/to/somefile.tar.gz')
>>> fileExtension 
'.gz'

sondern sollte es sein: .tar.gz

Die möglichen Lösungen sind aquí

19voto

Alex Punkte 1061

Einfach join 何れも pathlib suffixes .

>>> x = 'file/path/archive.tar.gz'
>>> y = 'file/path/text.txt'
>>> ''.join(pathlib.Path(x).suffixes)
'.tar.gz'
>>> ''.join(pathlib.Path(y).suffixes)
'.txt'

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