代码:
import os import shutil def copy_and_rename_files(src_directory, target_directory): # 确保目标目录存在 if not os.path.exists(target_directory): os.makedirs(target_directory) # 遍历指定目录及其所有子目录 for root, dirs, files in os.walk(src_directory): for file in files: if file.endswith('srt'): # 构建源文件的完整路径 src_file_path = os.path.join(root, file) # 获取源文件所在的文件夹的相对路径 relative_path = os.path.relpath(root, src_directory) # 构建目标文件夹的完整路径 target_folder_path = os.path.join(target_directory, relative_path) # 如果目标文件夹不存在,则创建它 if not os.path.exists(target_folder_path): os.makedirs(target_folder_path) # 获取源文件所在的文件夹名 folder_name = os.path.basename(root) # 构建新文件名,格式为:文件夹名_zhong_原文件名 new_file_name = f"{folder_name}_zhong_{file}" # 构建目标文件的完整路径 dest_file_path = os.path.join(target_folder_path, new_file_name) # 复制文件,并重命名 shutil.copy(src_file_path, dest_file_path) print(f"Copied {src_file_path} to {dest_file_path}") # 使用示例 # 将 "/path/to/source/directory" 替换为你的源目录路径 # 将 "/path/to/target/directory" 替换为你的目标目录路径 copy_and_rename_files("/path/to/source/directory", "/path/to/target/directory")
同一个目录下:
import os import shutil def copy_and_rename_files_in_same_dir(src_directory): # 遍历指定目录及其所有子目录 for root, dirs, files in os.walk(src_directory): for file in files: if file.endswith('srt'): # 获取源文件所在的文件夹的名称 folder_name = os.path.basename(root) # 构建新文件名,格式为:文件夹名_zhong_原文件名 new_file_name = f"{folder_name}_zhong_{file}" # 构建源文件的完整路径 src_file_path = os.path.join(root, file) # 构建目标文件的完整路径,确保它与源文件在同一目录下 dest_file_path = os.path.join(root, new_file_name) # 复制文件,并重命名 shutil.copy(src_file_path, dest_file_path) print(f"Copied {src_file_path} to {dest_file_path}") # 使用示例 # 将 "/path/to/your/directory" 替换为你的源目录路径 copy_and_rename_files_in_same_dir("/path/to/your/directory")