python代码在多个以多个变量命名的文件夹中查找同一文件,并以文件夹的变量重新命名,全部复制到新的文件夹中

#python批量查找文件并以变量重新命名复制到新文件夹##求助#
已知条件:
变量I=10 20 30 40,变量D=1 2 3 4
D盘下名为“运行结果”的文件夹,其中包含多个以变量I、D命名的子文件夹(结果I-D),如下:结果10-1,结果10-2,……,结果40-3,结果40-4
每一个“结果I-D”子文件夹下的子文件中包含一同名文件results.asc,其存在的路径为 D:\结果I-D\data\ascfile\results.asc

需要完成的处理是:
1.在每一个“结果I-D”文件夹中(或者其存在的文件夹路径“D:\结果I-D\data\ascfile”中)查找名为results.asc的asc文件
2.以resultsI-D.asc为该asc文件重新命名,其中I、D与主文件夹“结果I-D”相对应
3.将重命名的asc文件全部复制到以下路径中:D:\asc结果汇总

基于Monster 组和GPT的调写:

用Python的os和shutil库来完成此任务。以下是一个可能的代码实现:


import os
import shutil

# 定义变量I和D
I = ['10', '20', '30', '40']
D = ['1', '2', '3', '4']

# 遍历每一个结果文件夹
for i in I:
    for d in D:
        folder_name = f'结果{i}-{d}'
        folder_path = os.path.join('D:', folder_name, 'data', 'ascfile')
        
        # 在结果文件夹中查找结果文件
        for file_name in os.listdir(folder_path):
            if file_name == 'results.asc':
                # 重命名文件
                new_file_name = f'results{i}-{d}.asc'
                old_file_path = os.path.join(folder_path, file_name)
                new_file_path = os.path.join('D:', 'asc结果汇总', new_file_name)
                
                # 复制文件到汇总文件夹中
                shutil.copyfile(old_file_path, new_file_path)