From 0fbbb03ec70f77785fbc530c257610f40a09259c Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 3 Jan 2025 15:06:53 -0500 Subject: [PATCH] Garbage Cleaner --- Garbage Cleaner/.gitignore | 1 + Garbage Cleaner/garbageCleaner.py | 112 ++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 Garbage Cleaner/.gitignore create mode 100644 Garbage Cleaner/garbageCleaner.py diff --git a/Garbage Cleaner/.gitignore b/Garbage Cleaner/.gitignore new file mode 100644 index 0000000..3507a4c --- /dev/null +++ b/Garbage Cleaner/.gitignore @@ -0,0 +1 @@ +config.ini \ No newline at end of file diff --git a/Garbage Cleaner/garbageCleaner.py b/Garbage Cleaner/garbageCleaner.py new file mode 100644 index 0000000..4274080 --- /dev/null +++ b/Garbage Cleaner/garbageCleaner.py @@ -0,0 +1,112 @@ +import sys, os, shutil +import configparser + +config = configparser.ConfigParser() + +if os.path.isfile("config.ini"): + config.read("config.ini") +else: + config["Settings"] = { + "sourceDir": "C:\\somepath", + "copyToDir": "C:\\someotherpath", + "foldersToCopy": "life1960,life1960_map,life1960_code" + } + + with open("config.ini", "w") as configfile: + config.write(configfile) + + print("Config created, please update it before running again.") + sys.exit(0) + +sourceDir = config["Settings"]["sourceDir"] +copyToDir = config["Settings"]["copyToDir"] + +if not os.path.exists(sourceDir): + print("Invalid source directory") + sys.exit(0) + +if not os.path.exists(copyToDir): + print("Invalid destination directory") + sys.exit(0) + +print("Copying files from: " + sourceDir) +foldersToCopy = tuple(config["Settings"]["foldersToCopy"].split(",")) +print(foldersToCopy) + +print("Copying files to: " + copyToDir) + +fileExtensionsToCopy = ( + ".acp", + ".adeb", + ".ae", + ".afm", + ".agf", + ".agr", + ".anm", + ".asc", + ".asi", + ".ast", + ".asy", + ".aw", + ".bt", + ".bterr", + ".bttile", + ".c", + ".conf", + ".ct", +# ".dds", + ".desc", + ".edds", + ".emat", + ".ent", + ".et", +# ".fbx", + ".fnt", + ".gamemat", + ".gproj", + ".imageset", + ".layer", + ".layout", + ".meta", + ".nmn", + ".pak", + ".pap", + ".physmat", + ".pre", + ".ptc", + ".ragdoll", + ".rdb", + ".sig", + ".siga", + ".smap", + ".st", + ".stars", + ".styles", + ".terr", + ".topo", + ".ttf", + ".ttile", + ".txa", + ".txo", + ".vhcsurf", + ".wav", + ".xob" +) + +totalFiles = 0 +totalFilesCopied = 0 +for folder in foldersToCopy: + for root, dirs, files in os.walk(sourceDir + "\\" + folder): + for file in files: + totalFiles = totalFiles + 1 + if file.endswith(fileExtensionsToCopy): + pathname = root + "\\" + file + relname = pathname.replace(sourceDir, "") + destpath = copyToDir + relname + if os.path.isfile(pathname): + os.makedirs(os.path.dirname(destpath), exist_ok=True) + shutil.copy2(pathname, destpath) + totalFilesCopied = totalFilesCopied + 1 + print(relname) + +print(str(totalFiles) + " total files. " + str(totalFilesCopied) + " copied.") \ No newline at end of file