From fbf675be4ce1e76b55fd1b2afd528a6a4659e8fc Mon Sep 17 00:00:00 2001 From: pothead Date: Wed, 4 Sep 2024 18:39:27 +0200 Subject: [PATCH] =?UTF-8?q?Dateien=20nach=20=E2=80=9E/=E2=80=9C=20hochlade?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cleanfilenames.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 cleanfilenames.py diff --git a/cleanfilenames.py b/cleanfilenames.py new file mode 100644 index 0000000..a3f28c2 --- /dev/null +++ b/cleanfilenames.py @@ -0,0 +1,40 @@ +#!/usr/bin/python3 + +import sys, re, os + +errortxt = " mydirectory\nRenames _all_ strange filenames in a given directory. No other options, edit the source." +count = 0 + +# Check for one single commandlineparameter +try: + dirname = sys.argv[1] +except: + sys.exit(sys.argv[0] + errortxt) + +# Regex to eliminate everything not belonging into a filename +# Ey, this is not zombiecode! +# whitelist="[^a-z.A-Z0-9äöüÄÖÜß_+-]" # All trash eliminate +# whitelist="[^a-z.A-Z0-9äöüÄÖÜß_+-][^a-z.A-Z0-9äöüÄÖÜß_+-]*" # Reduce trash to "-" +whitelist = "[^a-z.A-Z0-9äöüÄÖÜß_+-][^a-z.A-Z0-9äöüÄÖÜß_+-]*" +cutminus = "^-+" + +# Open first commandline parameter as a directory +if os.path.isdir(dirname): + for filename in os.listdir(dirname): + tmpfilename = re.sub(whitelist, "-", filename) + # repair leading "-" and prepend a "0" + newfilename = re.sub(cutminus, "0-", tmpfilename) + # Test for already existing target + if os.path.exists(dirname + "/" + newfilename) == False: + # show what is happening + print("moving ", filename, " to ", newfilename) + os.rename(dirname + "/" + filename, dirname + "/" + newfilename) + count += 1 + else: + print("Not overwriting existing file: ", newfilename) +# Not a directory - exit and say someting nasty +else: + sys.exit(sys.argv[0] + errortxt) + +# Give a summary. +print("\n", count, " files renamed\n")