搓了一个python脚本,用来把头文件和源文件合成一个文件

This commit is contained in:
jackfiled 2022-05-31 10:41:41 +08:00
parent a0ba048cbf
commit 158a8368ec
2 changed files with 70 additions and 1 deletions

3
.gitignore vendored
View File

@ -9,3 +9,6 @@ build/
# draw.io的缓存文件
*.bkp
# 合成的全部代码文件
all.c

66
main.py Normal file
View File

@ -0,0 +1,66 @@
import os
input_file = open("all.c", "w", encoding="utf-8")
include_path: str = "./include/"
src_path: str = "./src/"
# 写入需要用到的头文件
input_file.write(
"""#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUS_CLOCK_WISE 0 // 顺时针
#define BUS_COUNTER_CLOCK_WISE 1 // 逆时针
#define BUS_TARGET 2 // 目标
#define BUS_STOP 2 // 停止
#define BUS_TRUE 1 // 真
#define BUS_FAlSE 0 // 假
#define IO_CLOCK 0 // 读取时钟指令
#define IO_READING 1 // 读取请求指令
#define IO_END 2 // 读取结束指令
#define BUS_FCFS 0 // 先来先服务
#define BUS_SSTF 1 // 最短寻找时间优先
#define BUS_SCAN 2 // 顺便服务
"""
)
# 读取include, src两个文件夹
# include文件的顺序需要手动指定
include_list: list = ["rail.h", "bus.h", "query.h", "bus_io.h", "controller.h", "define.h"]
src_list: list = os.listdir(src_path)
for file_name in include_list:
file_name = include_path + file_name
with open(file_name, "r", encoding="utf-8") as include_file:
while True:
line: str = include_file.readline()
if not line:
break
elif line[0] == "#":
continue
else:
input_file.write(line)
for file_name in src_list:
file_name = src_path + file_name
with open(file_name, "r", encoding="utf-8") as src_file:
while True:
line: str = src_file.readline()
if not line:
break
elif line[0] == "#":
continue
else:
input_file.write(line)
with open("main.c", "r", encoding="utf-8") as main_file:
while True:
line: str = main_file.readline()
if not line:
break
elif line[0] == "#":
continue
else:
input_file.write(line)
input_file.close()