1809 Stimmen

Extrahieren der Erweiterung aus dem Dateinamen in Python

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

1voto

Ibnul Husainan Punkte 193

Versuchen Sie dies:

files = ['file.jpeg','file.tar.gz','file.png','file.foo.bar','file.etc']
pen_ext = ['foo', 'tar', 'bar', 'etc']

for file in files: #1
    if (file.split(".")[-2] in pen_ext): #2
        ext =  file.split(".")[-2]+"."+file.split(".")[-1]#3
    else:
        ext = file.split(".")[-1] #4
    print (ext) #5
  1. alle Dateinamen innerhalb der Liste auslesen
  2. und überprüfen Sie die vorletzte Erweiterung, ist sie in der pen_ext-Liste enthalten oder nicht?
  3. wenn ja, verbinden Sie sie mit der letzten Erweiterung und legen Sie sie als Dateierweiterung fest
  4. wenn nicht, dann geben Sie einfach die letzte Erweiterung als Dateierweiterung an
  5. und dann überprüfen Sie es

0voto

eatmeimadanish Punkte 3514

Zum Spaß... sammeln Sie einfach die Erweiterungen in einem Diktat und speichern Sie sie alle in einem Ordner. Dann ziehen Sie einfach die Erweiterungen, die Sie wollen.

import os

search = {}

for f in os.listdir(os.getcwd()):
    fn, fe = os.path.splitext(f)
    try:
        search[fe].append(f)
    except:
        search[fe]=[f,]

extensions = ('.png','.jpg')
for ex in extensions:
    found = search.get(ex,'')
    if found:
        print(found)

-2voto

DragonX Punkte 105
# try this, it works for anything, any length of extension
# e.g www.google.com/downloads/file1.gz.rs -> .gz.rs

import os.path

class LinkChecker:

    @staticmethod
    def get_link_extension(link: str)->str:
        if link is None or link == "":
            return ""
        else:
            paths = os.path.splitext(link)
            ext = paths[1]
            new_link = paths[0]
            if ext != "":
                return LinkChecker.get_link_extension(new_link) + ext
            else:
                return ""

-2voto

lendoo Punkte 92
a = ".bashrc"
b = "text.txt"
extension_a = a.split(".")
extension_b = b.split(".")
print(extension_a[-1])  # bashrc
print(extension_b[-1])  # txt

-3voto

user5535053 Punkte 9
def NewFileName(fichier):
    cpt = 0
    fic , *ext =  fichier.split('.')
    ext = '.'.join(ext)
    while os.path.isfile(fichier):
        cpt += 1
        fichier = '{0}-({1}).{2}'.format(fic, cpt, ext)
    return fichier

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