写一个python3程序,该程序统计所有cpp文件的头文件,所有头文件都在当前工作路径下的data文件夹里,文件后缀都为.h。要求扫描出所有c++语言定义的接口信息,并生成excel
时间: 2024-05-01 12:16:58 浏览: 67
表格,表格包括两列:头文件名和接口名。
下面是可能的实现方式:
```python
import os
import re
import xlsxwriter
# 扫描所有cpp文件,找出包含的头文件
headers = set()
for root, dirs, files in os.walk("data"):
for file in files:
if file.endswith(".cpp"):
path = os.path.join(root, file)
with open(path) as f:
content = f.read()
matches = re.findall(r"#include\s+\"(.+\.h)\"", content)
headers.update(matches)
# 扫描所有头文件,找出接口信息
interfaces = []
for header in headers:
path = os.path.join("data", header)
with open(path) as f:
content = f.read()
matches = re.findall(r"^\s*(\w+)\s+\**(\w+)\s*\(", content, re.MULTILINE)
for match in matches:
interfaces.append((header, match[1]))
# 生成excel表格
workbook = xlsxwriter.Workbook("interfaces.xlsx")
worksheet = workbook.add_worksheet()
worksheet.write(0, 0, "Header")
worksheet.write(0, 1, "Interface")
for i, (header, interface) in enumerate(interfaces):
worksheet.write(i + 1, 0, header)
worksheet.write(i + 1, 1, interface)
workbook.close()
```
这个程序首先扫描所有cpp文件,找出包含的头文件。然后,对于每个头文件,扫描出其中定义的接口信息,并将其存储在一个列表中。最后,使用`xlsxwriter`库生成excel表格,将头文件名和接口名分别写入两列。
阅读全文