Add All existing
This commit is contained in:
64
rename_filtered.py
Normal file
64
rename_filtered.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
import sys
|
||||
import glob
|
||||
|
||||
def process_files(files, scheme):
|
||||
scheme_len = len(scheme)
|
||||
|
||||
for filename in files:
|
||||
print(f"Processing file: {filename}")
|
||||
print(f"Against scheme: {scheme}")
|
||||
|
||||
# Get the actual filename without the directory path
|
||||
base = os.path.basename(filename)
|
||||
|
||||
name, ext = os.path.splitext(base)
|
||||
|
||||
if scheme_len == len(name):
|
||||
new_name = ""
|
||||
for i in range(scheme_len):
|
||||
current_letter = scheme[i]
|
||||
if current_letter == "?":
|
||||
pass
|
||||
elif current_letter == "!":
|
||||
new_name += name[i]
|
||||
elif current_letter == name[i]:
|
||||
new_name += current_letter
|
||||
else:
|
||||
print(f"Mismatch at position {i}, skipping {filename}")
|
||||
new_name = None
|
||||
break
|
||||
if new_name:
|
||||
rename_file(filename, new_name, ext)
|
||||
else:
|
||||
print("No new name Generated. It is not supposed to do that")
|
||||
return
|
||||
|
||||
def rename_file(file, new_name, ext):
|
||||
dirname = os.path.dirname(file) # correct: preserve folder
|
||||
old_base = os.path.basename(file)
|
||||
|
||||
if old_base != new_name:
|
||||
new_filepath = os.path.join(dirname, new_name + ext)
|
||||
os.rename(file, new_filepath)
|
||||
print(f"Renamed '{old_base}' → '{new_name + ext}'")
|
||||
else:
|
||||
print(f"No renaming needed for '{old_base}'.")
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: scheme.py <scheme> [folder]")
|
||||
sys.exit(1)
|
||||
|
||||
scheme = sys.argv[1]
|
||||
folder = sys.argv[2] if len(sys.argv) > 2 else "."
|
||||
|
||||
# Get all files in the folder (assuming files are in the current directory by default)
|
||||
files = glob.glob(os.path.join(folder, "*"))
|
||||
|
||||
# Run the renaming logic
|
||||
process_files(files, scheme)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user