|
@@ -1,46 +1,29 @@
|
|
|
import os
|
|
|
-import re
|
|
|
-
|
|
|
-
|
|
|
-def rename_files(folder_path):
|
|
|
- # 遍历指定文件夹及其子文件夹
|
|
|
- for foldername, subfolders, filenames in os.walk(folder_path):
|
|
|
- for filename in filenames:
|
|
|
- # 构建完整的文件路径
|
|
|
- file_path = os.path.join(foldername, filename)
|
|
|
-
|
|
|
- # 获取文件名(不含路径)
|
|
|
- base_name = os.path.basename(file_path)
|
|
|
-
|
|
|
- # 使用正则表达式保留文件名中的小数点,删除开头的数字
|
|
|
- new_name = re.sub(r'^\d+', '', base_name, count=1)
|
|
|
-
|
|
|
- # 构建新的文件路径
|
|
|
- new_path = os.path.join(foldername, new_name)
|
|
|
-
|
|
|
- # 避免文件名冲突,添加后缀
|
|
|
- counter = 1
|
|
|
- while os.path.exists(new_path):
|
|
|
- # 文件名已存在,添加后缀
|
|
|
- new_name = re.sub(r'^\d+', '', base_name, count=1) + ('_' + str(counter) if counter > 1 else '')
|
|
|
- new_path = os.path.join(foldername, new_name)
|
|
|
- counter += 1
|
|
|
-
|
|
|
- # 重命名文件
|
|
|
- os.rename(file_path, new_path)
|
|
|
- print(f'Renamed: {file_path} -> {new_path}')
|
|
|
-
|
|
|
-
|
|
|
-# 指定要修改文件名的文件夹路径
|
|
|
-folder_path = '/Users/admin/Downloads/市文旅体局'
|
|
|
-
|
|
|
-# 调用函数
|
|
|
-rename_files(folder_path)
|
|
|
-
|
|
|
-# folder_path = '/Users/admin/Downloads/市文旅体局'
|
|
|
-
|
|
|
-
|
|
|
|
|
|
+def rename_files(directory):
|
|
|
+ # 使用os.walk遍历指定目录及其所有子目录下的所有文件
|
|
|
+ for root, dirs, files in os.walk(directory):
|
|
|
+ # 遍历当前目录下的所有文件
|
|
|
+ for filename in files:
|
|
|
+ # 检查文件名的开头是否是数字或小数点
|
|
|
+ if filename[0].isdigit() or filename[0] == '.':
|
|
|
+ # 分离文件名和扩展名
|
|
|
+ base_name, ext = os.path.splitext(filename)
|
|
|
+ # 删除文件名开头的数字和小数点,并添加扩展名
|
|
|
+ new_filename = base_name.lstrip('0123456789.') + ext
|
|
|
+ # 获取旧文件路径和新文件路径
|
|
|
+ old_file_path = os.path.join(root, filename)
|
|
|
+ new_file_path = os.path.join(root, new_filename)
|
|
|
+ # 重命名文件
|
|
|
+ os.rename(old_file_path, new_file_path)
|
|
|
+
|
|
|
+# 使用方法:将你需要修改文件名的目录替换下面的 'your_directory'
|
|
|
+rename_files('/Users/admin/Downloads/00旗市区的副本')
|
|
|
+
|
|
|
+
|
|
|
+#
|
|
|
+# # 指定要修改文件名的文件夹路径
|
|
|
+# folder_path = '/Users/admin/Downloads/00旗市区的副本'
|
|
|
|
|
|
|
|
|
|