Python – Löschen der ältesten Files in einem Verzeichnis, nur die neuesten (x) bleiben zurück

Durch das experimentieren mit der Pi Kamera und einem PIR Bewegungsmelder an der Raspberry Pi wurden schnell viele Bilder auf die SD Karte geschrieben.

Um etwas Kontrolle rein zu bringen, ist das folgende Python Script eine gute Basis.
Es gibt die Möglichkeit ein Verzeichnis und die maximale Anzahl Dateien darin anzugeben.
Übersteigt die Anzahl Dateien den definierten Wert, werden ältere Dateien gelöscht.

In meinem Fall halte ich immer maximal 1000 Bilder im Ordner.

Beispielcode:

#!/usr/bin/python
 
import os
 
path = "/home/pi/pictures/"
max_Files = 1000
 
def sorted_ls(path):
    mtime = lambda f: os.stat(os.path.join(path, f)).st_mtime
    return list(sorted(os.listdir(path), key=mtime))
 
del_list = sorted_ls(path)[0:(len(sorted_ls(path))-max_Files)]
 
for dfile in del_list:
    os.remove(path + dfile)
Python – Löschen der ältesten Files in einem Verzeichnis, nur die neuesten (x) bleiben zurück was last modified: Februar 2nd, 2017 by Henry Koch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.