1809 Stimmen

Extrahieren der Erweiterung aus dem Dateinamen in Python

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

6voto

Execuday Punkte 69

Auch wenn diese Frage bereits beantwortet ist, würde ich die Lösung in Regex hinzufügen.

>>> import re
>>> file_suffix = ".*(\..*)"
>>> result = re.search(file_suffix, "somefile.ext")
>>> result.group(1)
'.ext'

6voto

Kenstars Punkte 624

Dies ist eine direkte String-Darstellungstechnik: Ich sehe eine Menge Lösungen erwähnt, aber ich denke, die meisten sind auf Split suchen. Split jedoch tut es bei jedem Auftreten von "." . Was Sie eher suchen sollten, ist partition.

string = "folder/to_path/filename.ext"
extension = string.rpartition(".")[-1]

5voto

Muhammad Salman Punkte 65

Können Sie folgenden Code verwenden, um den Dateinamen und die Erweiterung aufzuteilen.

    import os.path
    filenamewithext = os.path.basename(filepath)
    filename, ext = os.path.splitext(filenamewithext)
    #print file name
    print(filename)
    #print file extension
    print(ext)

5voto

Eine weitere Lösung mit rechter Aufteilung:

# to get extension only

s = 'test.ext'

if '.' in s: ext = s.rsplit('.', 1)[1]

# or, to get file name and extension

def split_filepath(s):
    """
    get filename and extension from filepath 
    filepath -> (filename, extension)
    """
    if not '.' in s: return (s, '')
    r = s.rsplit('.', 1)
    return (r[0], r[1])

2voto

Victor Wang Punkte 599

Ein echter Einzeiler, wenn Sie Regex mögen. Und es macht auch nichts, wenn Sie zusätzliche "." in der Mitte haben

import re

file_ext = re.search(r"\.([^.]+)$", filename).group(1)

Das Ergebnis finden Sie hier: Hier klicken

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