代码:

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")

 

posted on 2024-05-01 15:49  大话人生  阅读(7)  评论(0编辑  收藏  举报