From 48e8e3e415449cfd53527d148f17ba3dceb753bc Mon Sep 17 00:00:00 2001 From: Sven Riwoldt Date: Sun, 26 Jan 2025 20:05:43 +0100 Subject: [PATCH] drittes regex --- rename.py | 42 +++++++++++------------------------------- rename_all.py | 25 +++++++++++-------------- 2 files changed, 22 insertions(+), 45 deletions(-) diff --git a/rename.py b/rename.py index c410f0e..b4765ec 100755 --- a/rename.py +++ b/rename.py @@ -3,42 +3,16 @@ import os import re import sys - -def rename_files(directory): - # Wechsel in das Zielverzeichnis - os.chdir(directory) - - # Iteriere über alle Dateien im Verzeichnis - for file in os.listdir("."): - # Prüfe, ob es sich um eine Datei handelt - if os.path.isfile(file): - # Finde den `_#__35`-Teil im Dateinamen - match = re.search(r'_#_\d+', file) - if match: - # Entferne das `#` und extrahiere den modifizierten Ausdruck - prefix = match.group(0).replace('#', '') - - # Entferne den `_#__35`-Teil aus dem Dateinamen - new_name = re.sub(r'_#_\d+', '', file) - - # Füge den modifizierten Ausdruck an den Anfang des Dateinamens - new_name = prefix + new_name - - # Benenne die Datei um - os.rename(file, new_name) - print(f"Umbenannt: '{file}' -> '{new_name}'") - - def rename_file(filename): name = filename.split('.')[0] # ohne Endung - temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen - #print(temp+"."+filename.split('.')[1]) #os.rename(filename, temp+"."+filename.split('.')[1]) - match1 = re.search(r'# (\d+)', temp) - match2= re.search(r'#(\d+)', temp) + match1 = re.search(r'# (\d+)', name) + match2 = re.search(r'#(\d+)', name) + match3 = re.search(r'\((Folge) (\d+)\)', name) if match1: + temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen # Extrahiere die Zahl und formatiere sie als 2-stellig (z. B. 05, 22) number = match1.group(1).zfill(2) # zfill(2) sorgt für zweistellige Zahlen @@ -48,6 +22,7 @@ def rename_file(filename): # Entfernen der letzten Leerzeichen new_name = new_name.rstrip() # LÖschen der abschliesssenden Leerzeichen elif match2: + temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen # Extrahiere die Zahl und formatiere sie als 2-stellig (z. B. 05, 22) number = match2.group(1).zfill(2) # zfill(2) sorgt für zweistellige Zahlen @@ -56,7 +31,11 @@ def rename_file(filename): new_name = f"{number}-{new_name}" # Entfernen der letzten Leerzeichen new_name = new_name.rstrip() - + elif match3: + number = match3.group(2).zfill(2) + temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen + new_name = f"{number}-{temp}" + new_name = new_name.rstrip() else: print("Keine Nummer gefunden") @@ -81,3 +60,4 @@ def rename_file(filename): #rename_files(".") rename_file(sys.argv[1]) +#rename_file("öaödksöakökqö (Folge 1) (dasdasdas).mp4") \ No newline at end of file diff --git a/rename_all.py b/rename_all.py index fd1a860..eab13f2 100755 --- a/rename_all.py +++ b/rename_all.py @@ -15,17 +15,15 @@ def rename_files(directory): rename_file(file) def rename_file(filename): - name = filename.split('.')[0] - print (name) # ohne Endung - new_name = "" - - temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen + name = filename.split('.')[0] # ohne Endung #print(temp+"."+filename.split('.')[1]) #os.rename(filename, temp+"."+filename.split('.')[1]) - match1 = re.search(r'# (\d+)', temp) - match2= re.search(r'#(\d+)', temp) + match1 = re.search(r'# (\d+)', name) + match2 = re.search(r'#(\d+)', name) + match3 = re.search(r'\((Folge) (\d+)\)', name) if match1: + temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen # Extrahiere die Zahl und formatiere sie als 2-stellig (z. B. 05, 22) number = match1.group(1).zfill(2) # zfill(2) sorgt für zweistellige Zahlen @@ -35,6 +33,7 @@ def rename_file(filename): # Entfernen der letzten Leerzeichen new_name = new_name.rstrip() # LÖschen der abschliesssenden Leerzeichen elif match2: + temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen # Extrahiere die Zahl und formatiere sie als 2-stellig (z. B. 05, 22) number = match2.group(1).zfill(2) # zfill(2) sorgt für zweistellige Zahlen @@ -43,7 +42,11 @@ def rename_file(filename): new_name = f"{number}-{new_name}" # Entfernen der letzten Leerzeichen new_name = new_name.rstrip() - + elif match3: + number = match3.group(2).zfill(2) + temp = re.sub(r'\(.*?\)', '', name) # Alles was mit Beginne ( bis einschliesslioch ) löschen + new_name = f"{number}-{temp}" + new_name = new_name.rstrip() else: print("Keine Nummer gefunden") @@ -58,12 +61,6 @@ def rename_file(filename): os.rename(filename, new_name+"."+filename.split('.')[1]) - - - - - - # Aufruf der Funktion (aktuelles Verzeichnis oder ein anderes) #rename_files(".")