diff options
author | crupest <crupest@outlook.com> | 2023-12-11 15:02:08 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2024-03-25 22:17:28 +0800 |
commit | 52566293e75055513d397bf3ad64af969cd1f185 (patch) | |
tree | a3d43cf3edf2a7a39ab42487efae4b7084c2a81f /tools/rename-tree.py | |
parent | c5c20e48c7620ac9524302474d9856fe1fe67537 (diff) | |
download | crupest-52566293e75055513d397bf3ad64af969cd1f185.tar.gz crupest-52566293e75055513d397bf3ad64af969cd1f185.tar.bz2 crupest-52566293e75055513d397bf3ad64af969cd1f185.zip |
tools(utility): move rename-tree.py.
Diffstat (limited to 'tools/rename-tree.py')
-rwxr-xr-x | tools/rename-tree.py | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/tools/rename-tree.py b/tools/rename-tree.py deleted file mode 100755 index c177eb6..0000000 --- a/tools/rename-tree.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import os -import os.path -import re - -parser = argparse.ArgumentParser( - prog='rename-tree', - description='Recursively rename directories and files') - -parser.add_argument('old') -parser.add_argument('new') -parser.add_argument('dirs', nargs="+") - -args = parser.parse_args() - -old_regex = re.compile(args.old) -new = args.new - -def rename(path, isdir): - dirname = os.path.dirname(path) - filename = os.path.basename(path) - new_filename = re.sub(old_regex, new, filename) - dir_str = "/" if isdir else "" - if new_filename != filename: - os.rename(path, os.path.join(dirname, new_filename)) - print(f"{path}{dir_str} -> {new_filename}{dir_str}") - -for i, d in enumerate(args.dirs): - print(f"[{i + 1}/{len(args.dirs)}] Run for {d}:") - for dirpath, dirnames, filenames in os.walk(d, topdown=False): - for filename in filenames: - rename(os.path.join(dirpath, filename), False) - rename(dirpath, True) - -print("Done!") |