python获得两个目录下所有.h,并将绝对路径下include目录之前的路径删除
时间: 2024-03-01 21:54:42 浏览: 97
可以使用Python的os和re模块来实现这个功能。具体步骤如下:
1. 使用os模块的walk函数遍历两个目录下的所有文件,使用re模块匹配出所有.h文件的绝对路径。
2. 对于每个匹配到的文件路径,使用os模块的dirname函数获取其所在目录的绝对路径。
3. 使用os模块的split函数将绝对路径分割成两部分,即包含include目录的路径和include目录之后的路径。
4. 返回包含include目录的路径部分即可。
以下是示例代码:
```python
import os
import re
def get_h_files(dir1, dir2):
h_files = []
for root, dirs, files in os.walk(dir1):
for file in files:
if re.search(r'\.h$', file):
h_files.append(os.path.abspath(os.path.join(root, file)))
for root, dirs, files in os.walk(dir2):
for file in files:
if re.search(r'\.h$', file):
h_files.append(os.path.abspath(os.path.join(root, file)))
include_dir = os.path.commonprefix([os.path.dirname(path) for path in h_files])
return [os.path.relpath(path, include_dir) for path in h_files]
```
使用示例:
```python
dir1 = '/path/to/dir1'
dir2 = '/path/to/dir2'
h_files = get_h_files(dir1, dir2)
print(h_files)
```
输出结果为所有匹配到的.h文件路径去除了包含include目录的部分。
阅读全文