1809 Stimmen

Extrahieren der Erweiterung aus dem Dateinamen in Python

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

17voto

weiyixie Punkte 495

Obwohl es ein altes Thema ist, aber ich frage mich, warum es keine Erwähnung eine sehr einfache api von Python genannt rpartition in diesem Fall:

um die Erweiterung eines bestimmten absoluten Dateipfads zu erhalten, können Sie einfach eingeben:

filepath.rpartition('.')[-1]

Beispiel:

path = '/home/jersey/remote/data/test.csv'
print path.rpartition('.')[-1]

erhalten Sie: 'csv'

12voto

soheshdoshi Punkte 549

Sie können eine split in einem filename :

f_extns = filename.split(".")
print ("The extension of the file is : " + repr(f_extns[-1]))

Dies erfordert keine zusätzliche Bibliothek

12voto

PascalVKooten Punkte 19311

Ich bin überrascht, dass dies noch nicht erwähnt wurde:

import os
fn = '/some/path/a.tar.gz'

basename = os.path.basename(fn)  # os independent
Out[] a.tar.gz

base = basename.split('.')[0]
Out[] a

ext = '.'.join(basename.split('.')[1:])   # <-- main part

# if you want a leading '.', and if no result `None`:
ext = '.' + ext if ext else None
Out[] .tar.gz

Vorteile:

  • Funktioniert wie erwartet für alles, was ich mir vorstellen kann
  • Keine Module
  • Keine Regex
  • Plattformübergreifend
  • Leicht erweiterbar (z. B. keine führenden Punkte für die Erweiterung, nur letzter Teil der Erweiterung)

Als Funktion:

def get_extension(filename):
    basename = os.path.basename(filename)  # os independent
    ext = '.'.join(basename.split('.')[1:])
    return '.' + ext if ext else None

11voto

staytime Punkte 135
filename='ext.tar.gz'
extension = filename[filename.rfind('.'):]

10voto

DS_ShraShetty Punkte 524

Extrahieren der Erweiterung aus dem Dateinamen in Python

Python os Modul splitext()

splitext() zerlegt den Dateipfad in ein Tupel mit zwei Werten - Root und Extension.

import os
# unpacking the tuple
file_name, file_extension = os.path.splitext("/Users/Username/abc.txt")
print(file_name)
print(file_extension)

Dateierweiterung mit Pathlib-Modul abrufen

Pathlib-Modul zur Ermittlung der Dateierweiterung

import pathlib
pathlib.Path("/Users/pankaj/abc.txt").suffix
#output:'.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