@gerdb42
I have over 2000 txt files, and I want to use regex. I already have a very good Python code. But I want regex. Maybe @guy038 knows a regex solution.
import os
import re
FOLDER = r"g:\Colectia EMINESCIANA\tst"
PATTERN = re.compile(r"^(.*_Page_)(\d+)(\.jpg)$", re.IGNORECASE)
fisiere = []
for nume in os.listdir(FOLDER):
m = PATTERN.match(nume)
if m and os.path.isfile(os.path.join(FOLDER, nume)):
fisiere.append((int(m.group(2)), nume, m.group(1), m.group(2), m.group(3)))
if not fisiere:
raise SystemExit("Nu s-a găsit niciun fișier care să corespundă tiparului.")
fisiere.sort(key=lambda x: x[0])
numere = [f[3] for f in fisiere]
perechi = list(zip([f[1] for f in fisiere], numere[::-1]))
print(f"Se inversează {len(perechi)} fișiere din {FOLDER}\n")
for (vechi, nou_num), (_, _, prefix, _, ext) in zip(perechi, fisiere):
print(f" {vechi} -> {prefix}{nou_num}{ext}")
if input("\nConfirmi redenumirea? (d/n): ").strip().lower() != "d":
raise SystemExit("Anulat.")
temporare = []
for i, (vechi, _) in enumerate(perechi):
tmp = f"__tmp_{i}__.jpg"
os.rename(os.path.join(FOLDER, vechi), os.path.join(FOLDER, tmp))
temporare.append(tmp)
for tmp, ((_, nou_num), (_, _, prefix, _, ext)) in zip(temporare, zip(perechi, fisiere)):
os.rename(os.path.join(FOLDER, tmp), os.path.join(FOLDER, f"{prefix}{nou_num}{ext}"))
print("\nRedenumire finalizată cu succes!")