将components下的文件夹复制到别一个文件夹下,并重新生成CMakelist.txt文件

一、将components下的文件夹复制到别一个文件夹下,并重新生成CMakelist.txt文件

二、python程序

python 复制代码
import os
from pathlib import Path
import shutil

# 获取当前文件夹
current_directory = Path.cwd()
# 目标文件夹
target_root = Path(r"C:\***\esp32practise\01_led\components\BSP")
target_root_main = Path(r"C:\***\esp32practise\01_led\main")
# 获取当前文件夹下所有有效文件夹,并取出components的文件夹的集合
foler_3_name_set = set()
for folder_1 in current_directory.iterdir():
    # 过滤非文件夹和系统文件夹
    if not folder_1.is_dir() or folder_1.name.startswith('.'):
        continue 
    folder_components = folder_1/'components'/'BSP'
    folder_main = folder_1/'main'
    if not folder_components.is_dir():
        continue
    for foler_3 in folder_components.iterdir():
        if not foler_3.is_dir():
            continue
        foler_3_name_set.add(foler_3.name)
        dest = target_root / foler_3.name
        # shutil.copytree(foler_3,dest,dirs_exist_ok=True)
        # 获取当前文件夹下main的文件夹下的main.c文件,并更名为main_components模块名.c
        for file_main in folder_main.iterdir():
            if file_main.name == 'main.c':
                file_new_name = 'main_'+foler_3.name+'.c'
                dest_file = target_root_main/file_new_name
                shutil.copy2(file_main,dest_file)
                print('main_'+foler_3.name+'.c')

# 重新生成CMakelist.txt文件
CMakelist_file = target_root/'CMakeLists_1.txt'
with open(CMakelist_file,'w',encoding='utf-8') as file:
    add_str = ''
    for src_dirs in foler_3_name_set:
        add_str += ('    '+src_dirs+'\n')
    file.write("set(src_dirs\n")
    file.write(add_str)
    file.write(')\n')
    file.write("set(include_dirs\n")
    file.write(add_str)
    file.write(')\n')
    file.write('set(requires\n    driver)\n')
    file.write('idf_component_register(SRC_DIRS ${src_dirs} INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})\n')
    file.write('component_compile_options(-ffast-math -O3 -Wno-error=format=-Wno-format)\n')
print('out:',src_dirs)
相关推荐
问天_观心14 分钟前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
洋洋不叫杨杨16 分钟前
揭秘当下知名的SEO优化渠道,你知道几个?
大数据·python
阿童木写作22 分钟前
跨境图片翻译工具推荐:批量处理视频字幕与智能抠图
python·音视频
梦想的颜色40 分钟前
OCR 识别原理与 Python 识图全实战:从文字提取到图像内容理解
python·计算机视觉·ocr·图像识别·python 识图
禹凕42 分钟前
Dijkstra算法详解与应用
python·算法
别走!万哥爱你1 小时前
Python 中可以用于在已排序的列表中查找特定元素的位置的是什么?
python
wxwx_bscxy3222 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
TechWayfarer3 小时前
Cloudflare 9·15新政倒计时:用IP风险画像识别AI爬虫,防止误伤Googlebot
网络·人工智能·爬虫·python·tcp/ip·网络安全
禹凕4 小时前
滑动窗口算法实战指南
python·算法
论文复现现场4 小时前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力