帕秋莉_诺蕾姬 2023-04-22 09:09 采纳率: 50%
浏览 18

求编写python脚本

我想做一个python脚本,现在有一个文件夹,内有若干子文件夹与文件,我想用某一个文件夹外的文件去替换这些文件夹下的文件,并且将替换后的文件改成原本该文件夹下的被替换文件的文件名。请问这该怎么写

例如,test文件夹下为这些

img


target文件夹下为这个文件,要用这个文件去替换test下的每个文件以及子文件夹下每个文件,并且使用被替换文件的文件名

img

  • 写回答

2条回答 默认 最新

  • 一行1 2023-04-22 09:25
    关注
     import os
     
     dir_path = r"D:\test"  # 文件夹路径
     target_dir = r"D:\target"  # 目标文件路径
     
     # 获取dir_path下的所有文件夹
     sub_dirs = os.listdir(dir_path)
     sub_dirs = [os.path.join(dir_path, d) for d in sub_dirs]
     
     # 遍历每个文件夹
     for sub_dir in sub_dirs:
         # 获取文件夹下的所有文件
         files = os.listdir(sub_dir)
         # 遍历每个文件
         for file in files:
             # 获取文件绝对路径
             file_path = os.path.join(sub_dir, file)
             # 如果是文件,则进行替换操作
             if os.path.isfile(file_path):
                 # 获取目标文件路径
                 target_file = os.path.join(target_dir, file)
                 # 替换文件
                 os.replace(target_file, file_path)
                 # 重命名
                 new_name = os.path.join(sub_dir, os.path.basename(target_file))
                 os.rename(file_path, new_name)
    
    1. 获取dir_path文件夹下的所有子文件夹
    2. 遍历每个子文件夹
    3. 获取每个子文件夹下的所有文件
    4. 判断如果是文件,就替换成target_dir文件夹下的文件
    5. 替换后,重命名这个文件为原来这个子文件夹下的文件名
    评论

报告相同问题?

问题事件

  • 修改了问题 4月22日
  • 创建了问题 4月22日