一些列不同文件夹
在每个文件夹的三级子文件夹中都有同名csv 文件,Defect_CMreport.csv
我需要遍历所有文件夹,实现以下功能
将Defect_CMreport.csv 重命名为“一级文件夹名+二级文件夹前17个字符+Defect_CMreport.csv”
例如“LE2B029-080104_20221217_13-02-54_Defect_CMreport.csv”将所有重命名过的文件统一放在指定的path 下
一些列不同文件夹
在每个文件夹的三级子文件夹中都有同名csv 文件,Defect_CMreport.csv
我需要遍历所有文件夹,实现以下功能
将Defect_CMreport.csv 重命名为“一级文件夹名+二级文件夹前17个字符+Defect_CMreport.csv”
例如“LE2B029-080104_20221217_13-02-54_Defect_CMreport.csv”
将所有重命名过的文件统一放在指定的path 下
试一下下面的代码实现,里面的路径部分你可以根据实际情况配置一下,有问题可以随时反馈,望采纳
import os
# 设置要遍历的根文件夹路径
root_path = '/path/to/root/folder'
# 设置要将重命名后的文件放到的路径
target_path = '/path/to/target/folder'
# 创建 target_path 文件夹,如果文件夹已存在则不会创建
os.makedirs(target_path, exist_ok=True)
# 遍历所有文件夹和子文件夹
for root, dirs, files in os.walk(root_path):
# 遍历所有文件
for file in files:
# 如果文件名是 Defect_CMreport.csv
if file == 'Defect_CMreport.csv':
# 获取文件所在的一级文件夹名和二级文件夹名的前 17 个字符
folder1 = root.split('/')[-2]
folder2 = root.split('/')[-1][:17]
# 重命名文件
new_file_name = folder1 + '_' + folder2 + '_Defect_CMreport.csv'
# 获取文件的完整路径
file_path = os.path.join(root, file)
# 获取重命名后文件的完整路径
new_file_path = os.path.join(target_path, new_file_name)
# 重命名文件并移动到指定路径
os.rename(file_path, new_file_path)