ich habe ein Programm geschrieben, dass File-Ordner analysiert. Es ermittelt die Dateiendungen der Files, die in Unterordnern liegen und zählt deren Häufigkeit.
Das kann ich nun ausprinten und es funktioniert ganz gut, wenn man es alphabetisch ausgibt. Allerdings möchte ich jetzt, dass die Liste nach Häufigkeit sortiert ist, nicht alphabetisch.
Zum Sortieren muss ich nun die Liste der Dateiendungen mit deren Häufigkeit verknüpfen, stehe allerdings auf dem Schlauch. Dictionary scheint nicht die Lösung zu sein, Tupel auch nicht.
An einer zweidimensionalen Liste bin ich aber auch gescheitert. Nun stehe ich auf dem Schlauch, denn es muss doch dazu eine einfache Lösung geben. Asl Anfänger benötige ich einen Denkanstoß.
Code: Alles auswählen
#!/usr/bin/env python3
import os
found_suffixes = []
allsuffixes = []
allsubdirs = []
def showdircontent(path):
for root_dir_path, sub_dirs, files in os.walk(path):
for sub_dir in sub_dirs:
allsubdirs.append(sub_dir)
for file in files:
suffix = str.upper(file.split('.')[-1]) #Dateiendung ermitteln
allsuffixes.append(suffix)
if suffix not in found_suffixes: #Liste der gefundenen Dateiendungen erstellen
found_suffixes.append(suffix)
found_suffixes.sort()
print(f"{len(found_suffixes)} different file extensions found in {len(allsubdirs)} subdirectories \n")
for foundsuffix in found_suffixes:
print(f"{foundsuffix}: {allsuffixes.count(foundsuffix)}")
if __name__ == '__main__':
showdircontent("G:/Dokumente")
10 different file extensions found in 28 subdirectories
BMP: 2
DOC: 21
DOCX: 20
JPG: 49
PDF: 67
PSD: 1
TXT: 3
XLS: 2
XLSX: 2
ZIP: 4