Kategorien
Python

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)

Von Henry Koch

take a look at: http://www.henrykoch.de/privat.html

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

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.