点击查看代码
import re
from pathlib import Path
def get_function_declaration(str_in):
regex = r"(^[a-zA-Z_]+\s+[a-zA-Z_]+\(.*\))\s+\{"
functions = []
matches = re.finditer(regex, str_in, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
# print("Match {matchNum} was found at {start}-{end}: {match}".format(
# matchNum=matchNum, start=match.start(), end=match.end(), match=match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
# print("Group {groupNum} found at {start}-{end}: {group}".format(groupNum=groupNum,
# start=match.start(groupNum), end=match.end(groupNum), group=match.group(groupNum)))
functions.append(match.group(groupNum))
return functions
# 将列表存为文件
def save_list_to_file(list_in, file_name):
with open(file_name, 'w') as f:
for item in list_in:
f.write("%s;\n" % item)
if __name__ == '__main__':
file_path = r"C:\WK-zcy\WK-platformIO\WK-esp32\esp32-c3-luatos-lcd-demo\esp32-c3-lcd-demo01.ino"
str_in = Path(file_path).read_text(encoding='utf-8')
functions = get_function_declaration(str_in)
print(functions)
save_list_to_file(functions, "functions.txt")