Wie kann ich Dateien, die eine bestimmtes Wort beinhalten umbenennen?
Ich habe ca. 80 Dateien, die alle zwei Worte enthalten, die ich im Namen der Datei gerne löschen würde. Hilfreich wäre hier ein Script mit der Bedingung "bei allen Dateien, die das Wort 'Haus' enthalten, dieses Wort entfernen".
Hat da einer Idee, wie ich sowas mit wenig Aufwand hinkriege?
3 Antworten
import glob
import os
files = glob.glob("*.txt")
temp = []
for i in range(len(files)):
if "Hause" in files[i]:
temp.append(files[i])
files = temp[:]
for i in range(len(files)):
temp[i] = temp[i].replace("Hause","")
os.rename(files[i],temp[i])
Datentyp anpassen. Also die daten die du umbennen musst sind ja ".pdf",".img" oder was weiß ich. Also hier das files = glob.glob("*.txt") durch "*.pdf" oder so ersetzen.
Den Quellcode einmal abspeichern als "rename.py"
Python installieren.
Dann einfach in der cmd konsole starten durch:
python rename.py
ENJOY
Die .py datei muss im Pfad drin sein wo die dateien sind. Und mir ist gerade ein tippfehler aufgefallen. Letzte Zeile.. hab ich korrigiert.
Ah, okay, jetzt bekomme ich folgende Meldung:
Traceback (most recent call last):
File "rename.py", line 14, in <module>
os.rename(files[i],temp)
TypeError: rename: dst should be string, bytes or os.PathLike, not list
Python ist aber installiert
Ich habe jetzt folgendes Script ausgeführt
import glob
import os
files = glob.glob("*.mp4")
temp = []
for i in range(len(files)):
if "Haus" in files[i]:
temp.append(files[i])
files = temp[:]
for i in range(len(files)):
temp[i].replace("Haus","")
os.rename(files[i],temp[i])
Es gibt zwar keine Fehlermeldung, es passiert aber auch sonst nichts
Ah okay ersetze mal:
temp[i].replace("Hause","")
durch:
temp[i] = temp[i].replace("Hause","")
Ich würde mal https://www.bulkrenameutility.co.uk/ in Kombination mit Regex empfehlen.
Regex:
/.*Haus.*/g
PowerShell:
dir <Pfad> | ForEach-Object {Rename-Item $_ -NewName ($_.Name -replace 'Haus', '')}
Statt <Pfad> muss halt der Pfad drin stehen, in dem die Dateien sind. Der Teil hinter -replace benutzt regular expressions. Du kannst also ziemlich wilde Ersetzungen vornehmen. Musst aber aufpassen, dass manche Zeichen (bei Dateinamen z.B. insbesondere der Punkt) Sonderzeichen für Regex sind.
Danke. Muss ich den Pfad in dem die Datei liegt nicht irgendwo angeben?
Bei mir hat er leider gar nichts verändert.