python3实现从文件夹下的.cc文获取Google benchmark的case名并输入到.json文件中 其中所有的benchmark case函数名都是Bm开头的比如BmGeasd
时间: 2024-09-18 13:02:21 浏览: 41
在Python 3中,你可以使用os模块来遍历文件夹,re模块来匹配文件名模式,然后将结果写入到json文件中。下面是一个简单的示例:
```python
import os
import re
import json
# 定义正则表达式匹配Bm开头的函数名
pattern = r'Bm[a-zA-Z0-9_]+'
def get_case_names(directory):
cases = []
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.cc'):
with open(os.path.join(root, file), 'r') as f:
content = f.read()
match = re.search(pattern, content)
if match:
cases.append(match.group()) # 如果找到匹配,添加到列表中
return cases
def write_to_json(cases, output_file):
data = {'benchmark_cases': cases}
with open(output_file, 'w') as f:
json.dump(data, f, indent=4) # 以易读格式写入json文件
# 示例目录和输出文件
directory = '/path/to/your/directory'
output_file = 'cases.json'
cases = get_case_names(directory)
write_to_json(cases, output_file)
阅读全文