Zufällige Nummern vor den Dateinamen setzen mit Python ohne Wiederholungen

Heute gibt es einen kleinen Beitrag mit einem Python Life Hack für mp3 Musikdateien von mir. Für die gestrige Frauensitzung bei uns im Ort habe ich einen USB Stick zusammengestellt, damit wir vor der Sitzung, in der Pause der Sitzung und nach der Sitzung im Thekenbereich noch etwas Musik haben. Diese wurde mit zwei verbundenen JBL PartyBox 310 abgespielt.

Mein Problem

Leider kann die PartyBox die mp3 Dateien nur in alphabetischer Reihenfolge der Songs abspielen. Ihr ahnt es schon: Daraus folgt dann Brings, Brings, Brings, Höhner, Höhner, Höhner und so weiter. Ist natürlich für die Stimmung nur mäßig gut.

Die Lösung - ein numerisches Prefix

Also habe ich gesucht, wie man mit möglichst wenig Aufwand ein zufälliges numerisches Prefix vor den Dateinamen setzen kann. Manuell ca. 250 Dateien umzubennen ist ätzend aufwendig. Das klappt mit ein paar Zeilen Python Code aber ganz gut. Hab ich nicht selbst programmiert aber lange gesucht im Netz. Bin schließlich bei Stack Overflow fündig geworden durch einen Post von dem Benutzer Ajax1234 und möchte das gerne mit euch teilen. Den Code habe ich mir leicht angepasst. Er sollte auf jedem OS funktionieren. Ihr braucht nur einen Python Interpreter. Bei mir Python 3

import os
import random

used_random = []

os.chdir('./euer_verzeichnis_mit_den_dateien/')
for filename in os.listdir():
    n = random.randint(1, len(os.listdir()))
    while n in used_random:
        n = random.randint(1, len(os.listdir()))
    used_random.append(n)
    os.rename(filename, f"{n} - {filename}")

Python Code von Ajax1234, Lizenz unbekannt, angepasst in der letzten Zeile

Es macht dann aus den im Verzeichnis vorhandenen Dateien

datei_a.mp3
datei_b.mp3
datei_c.mp3
datei_d.mp3

sowas hier:

1 - datei_b.mp3
2 - datei_d.mp3 
3 - datei_a.mp3 
4 - datei_c.mp3

Perfekt für den Einsatzzweck. Also einfach den Code in eine Datei z.B. renamer.py kopieren den Pfad anpassen!!! in der codezeile os.chdir('./euer_verzeichnis_mit_den_dateien/') und mit python3 renamer.py ausführen. Das geht rasend schnell.

Viel Spass mit dem Python Life Hack

Lizenzhinweis

Creative Commons Lizenzvertrag
Zufällige Nummern vor den Dateinamen setzen mit Python ohne Wiederholungen von Ulrich Ivens für IvensTraining ist lizenziert unter einer CC BY-SA 4.0 International Lizenz.

Du willst den Inhalt remixen oder weiterverwenden? Der Markdown Quellcode dieses Beitrags ist zu finden unter: https://gitlab.eldshort.de/uivens/quellcode-blog-cc/-/raw/main/2023/Zufaellige_Nummern_vor_den_Dateinamen_setzen_mit_Python_ohne_Wiederholungen.md

Beitrag merken & teilen

Hier kannst Du dir den Link zum Beitrag kopieren - beispielsweise um ihn zu speichern oder mit anderen zu teilen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert