如何使用shutil复制文件时为指定文件添加编号后缀重命名?
使用shutil实现指定文件复制与自定义重命名
可以通过建立源文件与目标文件名的映射关系,结合shutil.copy2(保留文件元数据)来实现需求,具体代码如下:
import shutil import os # 定义源文件路径与目标文件名的映射 file_mapping = { "src/blue.png": "blue_1001.png", "src/green.png": "green_1002.png" } # 确保目标目录存在,不存在则创建 target_dir = "dst" os.makedirs(target_dir, exist_ok=True) # 遍历映射完成复制与重命名 for src_path, target_filename in file_mapping.items(): # 拼接完整的目标文件路径 target_path = os.path.join(target_dir, target_filename) # 执行复制(copy2会保留文件的元数据,如创建时间等) shutil.copy2(src_path, target_path)
关键说明:
os.makedirs(target_dir, exist_ok=True):避免因目标目录不存在导致复制失败,exist_ok=True表示目录已存在时不会报错shutil.copy2相比shutil.copy会保留文件的元数据(如修改时间、权限等),更适合大多数文件复制场景- 通过字典映射可以灵活扩展需要复制的文件及对应的重命名规则
内容的提问来源于stack exchange,提问作者Kartikey Sinha
相关产品推荐
相关产品推荐

