将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)
相关推荐
打工仔折腾 AI12 分钟前
让时序预测真正参与决策:TimechoAI 工程化落地与管线设计实践
人工智能·后端·python·算法·机器学习·性能优化
“AI国潮设计-小江”30 分钟前
《【AIGC实战】Python+SDXL批量生成“猫咪英歌舞蛋挞”IP,附保持角色一致性的代码逻辑》
开发语言·人工智能·python·prompt·aigc
惊讶的猫1 小时前
langchain-agent的基础使用
python·langchian
把我格子衫拿来2 小时前
VTK 体绘制入门到排错:传递函数、采样距离与透明度的关系
python·vtk·可视化·医学影像·体绘制
张张123y7 小时前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
全栈弄潮儿10 小时前
Python实战第7期:字典与集合
后端·python·编程语言
2603_9651481110 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya11 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
把我格子衫拿来11 小时前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice